Compare commits
14 Commits
441f3cee66
...
master
Author | SHA1 | Date | |
---|---|---|---|
c1e4fbc75c | |||
9a548cdedc | |||
400d8b728c | |||
f2aab415d0 | |||
35b1e38dcc | |||
1c3bb571e1 | |||
dbe87cf75f | |||
3eb272a2a3 | |||
5a288f6cb4 | |||
7d6774149c | |||
64971f6afa | |||
a70ea6a55c | |||
041fc50d5d | |||
2a6ab0d97a |
9
.gitignore
vendored
9
.gitignore
vendored
@ -1,9 +1,10 @@
|
|||||||
*.swp
|
*.swp
|
||||||
/conf/logrotate.conf
|
/conf/exclude_from.list
|
||||||
/conf/rcopy.conf
|
/conf/*.conf
|
||||||
/conf/manual_hosts.conf
|
|
||||||
/conf/restore-website-from-backup.conf
|
|
||||||
/conf/*.key
|
/conf/*.key
|
||||||
/hosts/*.sh
|
/hosts/*.sh
|
||||||
/hosts/BAK/*
|
/hosts/BAK/*
|
||||||
/hosts/deleted/*
|
/hosts/deleted/*
|
||||||
|
/hosts/OLD-Backup-Host/*
|
||||||
|
/hosts/Not_Yet-Moved/*
|
||||||
|
/hosts/Moved-o-borg2/*
|
||||||
|
@ -24,6 +24,8 @@ BACKUP_HOST=`hostname -f`
|
|||||||
HOME_DIR=$HOME
|
HOME_DIR=$HOME
|
||||||
AGENT=/tmp/.agent-$USER.sh
|
AGENT=/tmp/.agent-$USER.sh
|
||||||
|
|
||||||
|
SSH_KEY=/root/.ssh/id_ed25519-backup
|
||||||
|
|
||||||
admin_email="<ADMIN_EMAIL>"
|
admin_email="<ADMIN_EMAIL>"
|
||||||
from_address="backup@`hostname -f`"
|
from_address="backup@`hostname -f`"
|
||||||
company="<COMPANY>"
|
company="<COMPANY>"
|
||||||
@ -84,12 +86,7 @@ backup_partition=
|
|||||||
disk_identifier=
|
disk_identifier=
|
||||||
_found=false
|
_found=false
|
||||||
|
|
||||||
if $crypto_backup_device ; then
|
if $extern_usb_disk || $extern_sata_disk || $intern_disk ; then
|
||||||
|
|
||||||
backup_raw_partition=$_backup_partition
|
|
||||||
backup_partition="/dev/mapper/${backup_partition_name}"
|
|
||||||
|
|
||||||
elif $extern_usb_disk || $extern_sata_disk || $intern_disk ; then
|
|
||||||
|
|
||||||
## - In case of unencrypted (and labeled) extern backup disc
|
## - In case of unencrypted (and labeled) extern backup disc
|
||||||
## -
|
## -
|
||||||
@ -113,10 +110,20 @@ elif $extern_usb_disk || $extern_sata_disk || $intern_disk ; then
|
|||||||
|
|
||||||
## - Backup device could not be detected, so we will try the (above) given one..
|
## - Backup device could not be detected, so we will try the (above) given one..
|
||||||
## -
|
## -
|
||||||
backup_partition=$_backup_partition
|
backup_raw_partition=$_backup_partition
|
||||||
|
#backup_partition=$_backup_partition
|
||||||
|
|
||||||
else
|
else
|
||||||
backup_partition=/dev/$disk_identifier
|
backup_raw_partition=/dev/$disk_identifier
|
||||||
|
#backup_partition=/dev/$disk_identifier
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $(cryptsetup isLuks $backup_raw_partition) ; then
|
||||||
|
crypto_backup_device=true
|
||||||
|
backup_partition="/dev/mapper/${backup_partition_name}"
|
||||||
|
else
|
||||||
|
crypto_backup_device=false
|
||||||
|
backup_partition=$backup_raw_partition
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
@ -127,7 +127,7 @@ fi
|
|||||||
## -
|
## -
|
||||||
[[ -z "$nextcloud_backup" ]] && nextcloud_backup=false
|
[[ -z "$nextcloud_backup" ]] && nextcloud_backup=false
|
||||||
|
|
||||||
if [ "$found" = "true" -o "$pgsql_backup" = "true" -o "$mysql_backup" = "true" -o "$disksetting_backup" = "true" -o "$nextcloud_backup" = "true" ] ; then
|
if [ "$found" = "true" -o "$pgsql_backup" = "true" -o "$mysql_backup" = "true" -o "$disksetting_backup" = "true" -o "$nextcloud_backup" = "true" -o "$mount_netdir" = "true" ] ; then
|
||||||
|
|
||||||
begin_h=`date +%H`
|
begin_h=`date +%H`
|
||||||
begin_m=`date +%M`
|
begin_m=`date +%M`
|
||||||
@ -348,7 +348,7 @@ if [ "$found" = "true" -o "$pgsql_backup" = "true" -o "$mysql_backup" = "true"
|
|||||||
if $mount_netdir; then
|
if $mount_netdir; then
|
||||||
echolog "\nGoing to backup network directories.. ( `$date +%H`:`$date +%M` h )"
|
echolog "\nGoing to backup network directories.. ( `$date +%H`:`$date +%M` h )"
|
||||||
for dir in $net_mounted_dir_backup ; do
|
for dir in $net_mounted_dir_backup ; do
|
||||||
echolog "\n\tBackup network directory $dir"
|
#echolog "\n\tBackup network directory $dir"
|
||||||
export mount_netdir
|
export mount_netdir
|
||||||
backup_dir=$dir $script_dir/net_mounted_dir_backup.sh
|
backup_dir=$dir $script_dir/net_mounted_dir_backup.sh
|
||||||
done
|
done
|
||||||
|
@ -103,11 +103,13 @@
|
|||||||
## -
|
## -
|
||||||
## - MariaDB > 10.3 or installed from debian package system:
|
## - MariaDB > 10.3 or installed from debian package system:
|
||||||
## -
|
## -
|
||||||
## - mysql -u root -S /var/run/mysqld/mysqld.sock -N -s -e "CREATE USER 'backup'@'localhost' IDENTIFIED BY 'backup'"
|
## - mysql -u root -S /run/mysqld/mysqld.sock -N -s -e "CREATE USER 'backup'@'localhost' IDENTIFIED BY 'backup'"
|
||||||
## -
|
## -
|
||||||
## - mysql -u root -S /var/run/mysqld/mysqld.sock -N -s -e "GRANT USAGE ON *.* TO 'backup'@'localhost'"
|
## - mysql -u root -S /run/mysqld/mysqld.sock -N -s -e "GRANT USAGE ON *.* TO 'backup'@'localhost'"
|
||||||
## -
|
## -
|
||||||
## - mysql -u root -S /var/run/mysqld/mysqld.sock -N -s -e "GRANT SELECT, SHOW VIEW, EVENT, LOCK TABLES, RELOAD, REPLICATION CLIENT ON *.* TO 'backup'@'localhost'"
|
## - mysql -u root -S /run/mysqld/mysqld.sock -N -s -e "GRANT SELECT, SHOW VIEW, EVENT, LOCK TABLES, EXECUTE, RELOAD, BINLOG MONITOR, REPLICATION CLIENT ON *.* TO 'backup'@'localhost'"
|
||||||
|
## -
|
||||||
|
## - mysql -u root -S /run/mysqld/mysqld.sock -N -s -e "FLUSH PRIVILEGES"
|
||||||
## -
|
## -
|
||||||
## - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
## - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
@ -269,14 +271,14 @@ if $ARCHIVE ;then
|
|||||||
else
|
else
|
||||||
if [ -n "$mysql_credential_args" ] ; then
|
if [ -n "$mysql_credential_args" ] ; then
|
||||||
$(
|
$(
|
||||||
$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \
|
$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql $mysql_credential_args -N -s -A | sed "s/\$/;/g" \
|
||||||
> ${_backupDestArchiveDir}/MySQLGrants-${filedate}.sql 2> $err_Log
|
> ${_backupDestArchiveDir}/MySQLGrants-${filedate}.sql 2> $err_Log
|
||||||
exit $?
|
exit $?
|
||||||
)
|
)
|
||||||
retval=$?
|
retval=$?
|
||||||
else
|
else
|
||||||
$(
|
$(
|
||||||
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed 's/\$/;/g' \
|
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed "s/\$/;/g" \
|
||||||
> ${_backupDestArchiveDir}/MySQLGrants-${filedate}.sql 2> $err_Log
|
> ${_backupDestArchiveDir}/MySQLGrants-${filedate}.sql 2> $err_Log
|
||||||
exit $?
|
exit $?
|
||||||
)
|
)
|
||||||
@ -388,14 +390,14 @@ if $ARCHIVE ;then
|
|||||||
else
|
else
|
||||||
if [ -n "$mysql_credential_args" ] ; then
|
if [ -n "$mysql_credential_args" ] ; then
|
||||||
$(
|
$(
|
||||||
$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \
|
$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql $mysql_credential_args -N -s -A | sed "s/\$/;/g" \
|
||||||
> ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
|
> ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
|
||||||
exit $?
|
exit $?
|
||||||
)
|
)
|
||||||
retval=$?
|
retval=$?
|
||||||
else
|
else
|
||||||
$(
|
$(
|
||||||
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \
|
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql $mysql_credential_args -N -s -A | sed "s/\$/;/g" \
|
||||||
> ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
|
> ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
|
||||||
exit $?
|
exit $?
|
||||||
)
|
)
|
||||||
@ -835,14 +837,14 @@ if $ARCHIVE ;then
|
|||||||
else
|
else
|
||||||
if [ -n "$mysql_credential_args" ] ; then
|
if [ -n "$mysql_credential_args" ] ; then
|
||||||
$(
|
$(
|
||||||
$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \
|
$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql $mysql_credential_args -N -s -A | sed "s/\$/;/g" \
|
||||||
> ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
|
> ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
|
||||||
exit $?
|
exit $?
|
||||||
)
|
)
|
||||||
retval=$?
|
retval=$?
|
||||||
else
|
else
|
||||||
$(
|
$(
|
||||||
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \
|
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session' AND user <> 'mysql' AND user <> 'mariadb.sys'" | $mysql $mysql_credential_args -N -s -A | sed "s/\$/;/g" \
|
||||||
> ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
|
> ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
|
||||||
exit $?
|
exit $?
|
||||||
)
|
)
|
||||||
@ -1159,6 +1161,10 @@ if $ARCHIVE ;then
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$i" = "mysql" -o "$i" = "sys" ];then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
echo "CREATE DATABASE IF NOT EXISTS $i CHARACTER SET utf8 COLLATE utf8_general_ci;" \
|
echo "CREATE DATABASE IF NOT EXISTS $i CHARACTER SET utf8 COLLATE utf8_general_ci;" \
|
||||||
>> ${_backupDestArchiveDir}/MySQL_Create_Databases-${filedate}.sql
|
>> ${_backupDestArchiveDir}/MySQL_Create_Databases-${filedate}.sql
|
||||||
|
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
## -
|
## -
|
||||||
## - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
## - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
err_Log=${LOCK_DIR}/dir.err.log
|
||||||
|
> $err_Log
|
||||||
|
|
||||||
## - load functions
|
## - load functions
|
||||||
## -
|
## -
|
||||||
@ -19,10 +21,29 @@
|
|||||||
|
|
||||||
if $mount_netdir ; then
|
if $mount_netdir ; then
|
||||||
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
|
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
|
||||||
print_error_stdout "Mounting network directories is only possible for localhost - yet:\n $(cat $err_Log)"
|
|
||||||
echolog ""
|
## - Network directory mounted ?
|
||||||
echolog "\t[ERROR] Mounting network directories is only possible for localhost - yet"
|
## -
|
||||||
exit 1
|
if ! $($ssh ${ssh_user}@${srcHost} df -h 2> /dev/null | grep -q ${backup_dir} 2>/dev/null) ; then
|
||||||
|
$ssh ${ssh_user}@${srcHost} "$sudo mount ${backup_dir}" > /dev/null 2> $err_Log
|
||||||
|
|
||||||
|
if [[ "$?" -ne 0 ]]; then
|
||||||
|
echolog ""
|
||||||
|
echolog "\t[ERROR] Mounting '${backup_dir}' on '${srcHost}' failed!\n $(cat "$err_Log")"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
if ! $($ssh ${ssh_user}@${srcHost} df -h 2> /dev/null | grep -q ${backup_dir} 2>/dev/null) ; then
|
||||||
|
echolog ""
|
||||||
|
echolog "\t[ERROR] Something went wrong with mounting '${backup_dir}' on '${srcHost}'!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
## - Network directory mounted ?
|
## - Network directory mounted ?
|
||||||
## -
|
## -
|
||||||
@ -43,20 +64,39 @@ fi
|
|||||||
|
|
||||||
## - Check if directory is empty
|
## - Check if directory is empty
|
||||||
## -
|
## -
|
||||||
if [ ! "$(ls -A $backup_dir)" ]; then
|
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
|
||||||
echolog "\t[ NOTICE ]: Directory \"$backup_dir\" is empty. So nothing to do..\n"
|
|
||||||
exit 0
|
if [ ! "$( $ssh ${ssh_user}@${srcHost} ls -A ${backup_dir})" ] ; then
|
||||||
fi
|
echolog ""
|
||||||
|
echolog "\t[ NOTICE ]: Directory \"${backup_dir}\" on \"${srcHost}\" is empty. So nothing to do..\n"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ ! "$(ls -A $backup_dir)" ]; then
|
||||||
|
echolog ""
|
||||||
|
echolog "\t[ NOTICE ]: Directory \"$backup_dir\" is empty. So nothing to do..\n"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echolog "\n\tBackup network directory \"$backup_dir\" ( `$date +%H`:`$date +%M` h )"
|
echolog "\n\tBackup network directory \"$backup_dir\" ( `$date +%H`:`$date +%M` h )"
|
||||||
backup_dir=$backup_dir $script_dir/dir_backup.sh
|
backup_dir=$backup_dir $script_dir/dir_backup.sh
|
||||||
|
|
||||||
if $mount_netdir ; then
|
if $mount_netdir ; then
|
||||||
if [ $srcHost != "localhost" ];then
|
if [ $srcHost != "localhost" ];then
|
||||||
print_error_stdout "Mounting network directories is only possible for localhost - yet:\n $(cat $err_Log)"
|
|
||||||
echolog ""
|
$ssh ${ssh_user}@${srcHost} "$sudo umount ${backup_dir}" > /dev/null 2> $err_Log
|
||||||
echolog "\t[ERROR] Mounting network directories is only possible for localhost - yet"
|
if [[ "$?" -ne 0 ]]; then
|
||||||
exit 1
|
echolog ""
|
||||||
|
echolog "\t[ERROR] Unounting '${backup_dir}' on '${srcHost}' failed!\n $(cat "$err_Log")"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#print_error_stdout "Mounting network directories is only possible for localhost - yet:\n $(cat $err_Log)"
|
||||||
|
#echolog ""
|
||||||
|
#echolog "\t[ERROR] Mounting network directories is only possible for localhost - yet"
|
||||||
|
#exit 1
|
||||||
|
|
||||||
else
|
else
|
||||||
$umount $backup_dir 2> /dev/null
|
$umount $backup_dir 2> /dev/null
|
||||||
fi
|
fi
|
||||||
|
51
rcopy.sh
51
rcopy.sh
@ -13,6 +13,8 @@ manual=${manual:=false}
|
|||||||
## -
|
## -
|
||||||
USER=$LOGNAME
|
USER=$LOGNAME
|
||||||
|
|
||||||
|
DEFAULT_SSH_KEY="/root/.ssh/id_ed25519-backup"
|
||||||
|
|
||||||
## - global configuration for the remote backup-script
|
## - global configuration for the remote backup-script
|
||||||
## -
|
## -
|
||||||
rcopy_base_dir="$(realpath $(dirname $0))"
|
rcopy_base_dir="$(realpath $(dirname $0))"
|
||||||
@ -46,10 +48,12 @@ fi
|
|||||||
NO_NEW_BACKUP=false
|
NO_NEW_BACKUP=false
|
||||||
ONLY_BACKUP=false
|
ONLY_BACKUP=false
|
||||||
MANUAL=false
|
MANUAL=false
|
||||||
while getopts BhNm opt ; do
|
while getopts Bhk:Nm opt ; do
|
||||||
case $opt in
|
case $opt in
|
||||||
B) ONLY_BACKUP=true
|
B) ONLY_BACKUP=true
|
||||||
;;
|
;;
|
||||||
|
k) SSH_KEY=$OPTARG
|
||||||
|
;;
|
||||||
m) MANUAL=true
|
m) MANUAL=true
|
||||||
;;
|
;;
|
||||||
N) NO_NEW_BACKUP=true
|
N) NO_NEW_BACKUP=true
|
||||||
@ -60,6 +64,10 @@ while getopts BhNm opt ; do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [[ -z "${SSH_KEY}" ]] ; then
|
||||||
|
SSH_KEY="${DEFAULT_SSH_KEY}"
|
||||||
|
fi
|
||||||
|
|
||||||
if $ONLY_BACKUP && $NO_NEW_BACKUP ; then
|
if $ONLY_BACKUP && $NO_NEW_BACKUP ; then
|
||||||
fatal "Parameter '-B' AND '-N' is not possible."
|
fatal "Parameter '-B' AND '-N' is not possible."
|
||||||
fi
|
fi
|
||||||
@ -243,39 +251,30 @@ elif $remote_disk ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
## - $AGENT muss (root) geh<65>ren und darf nicht beschreibbar sein
|
# ---
|
||||||
## -
|
# SSH agent stuff
|
||||||
|
## --
|
||||||
|
|
||||||
if [ ! -O $AGENT ] || ! ps ax | grep ssh-agent | grep -v grep > /dev/null ; then
|
# Kill remaining ssh-agent processes if exists
|
||||||
|
#
|
||||||
|
if $(ps -U ${USER} -u ${USER} | ${grep} -q ssh-agent 2> /dev/null) ; then
|
||||||
killall ssh-agent > /dev/null 2> /dev/null
|
killall ssh-agent > /dev/null 2> /dev/null
|
||||||
rm -f $AGENT
|
unset SSH_AGENT_PID
|
||||||
ssh-agent > $AGENT; . $AGENT > /dev/null ; ssh-add > /dev/null 2>&1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ ! -O $AGENT ]; then
|
# Run SSH-Agent as background process..
|
||||||
|
#
|
||||||
|
eval $(ssh-agent 2> /dev/null | tee ${AGENT}) > /dev/null
|
||||||
|
|
||||||
msg_00="\n[ Error ]: No file \"$AGENT\" for ssh-agent informations found or i'm not the owner !!"
|
# Load the SSH private key into ssh agent
|
||||||
msg_01="\t ======================="
|
#
|
||||||
msg_02="\t !! BACKUP INTERUPTED !!"
|
ssh-add -q ${SSH_KEY} 2> /dev/null
|
||||||
msg_03="As user \"$USER\" do:\n\tssh-agent > $AGENT; . $AGENT; ssh-add"
|
|
||||||
msg="${msg_00}\n\n${msg_01}\n${msg_02}\n${msg_01}\n\n${msg_03}"
|
|
||||||
if $MANUAL ; then
|
|
||||||
echo -e "\n$msg\n"
|
|
||||||
else
|
|
||||||
datum="$(date +"%d.%m.%Y")"
|
|
||||||
subject="Backup Errors $company -- $datum"
|
|
||||||
subject_utf8="$(echo "$subject" | iconv -t UTF8)"
|
|
||||||
subject_utf8_encoded="=?utf-8?B?$(echo $subject_utf8 | base64 --wrap=0)?="
|
|
||||||
echo -e "To:${admin_email}\n${content_type}\nSubject:${subject_utf8_encoded}\n${msg}\n" | /usr/sbin/sendmail -F "Errors BACKUP $company" -f $from_address $admin_email
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
. $AGENT > /dev/null 2>&1
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! `$ps aux | $grep -e"^$USER" | $grep "$SSH_AGENT_PID" | $grep ssh-agent | awk '{print$2}'` ]; then
|
# Check if ssh key was loaded
|
||||||
|
#
|
||||||
|
if ! $(ps -U ${USER} -u ${USER} | $grep "$SSH_AGENT_PID" | $grep -q ssh-agent 2> /dev/null) ; then
|
||||||
|
|
||||||
msg_00="\n[ Error ]: No Prozess for ssh-agent with Process ID \"$SSH_AGENT_PID\" found !!"
|
msg_00="\n[ Error ]: No Prozess for ssh-agent with Process ID \"$SSH_AGENT_PID\" found !!"
|
||||||
msg_01="\t ======================="
|
msg_01="\t ======================="
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
script_dir=$(realpath `dirname $0`)
|
script_dir=$(realpath `dirname $0`)
|
||||||
$script_dir/rcopy.sh -m $*
|
$script_dir/rcopy.sh -m -B $*
|
||||||
|
|
||||||
exit $?
|
exit $?
|
||||||
|
Reference in New Issue
Block a user