Compare commits

...

16 Commits

Author SHA1 Message Date
c1e4fbc75c Delete unused old configuration files. 2025-05-24 23:52:04 +02:00
9a548cdedc Some changes to file ',gitignore'. 2025-05-24 23:44:41 +02:00
400d8b728c rcopy.conf.sample: The backup script now determines itself whether the backup hard drive is encrypted or not. 2025-05-24 23:39:16 +02:00
f2aab415d0 rcopy.sh: renew ssh agent stuff. 2025-02-13 11:59:34 +01:00
35b1e38dcc rcopy.sh: Fix error in loading ssh agent. 2024-12-11 17:14:20 +01:00
1c3bb571e1 rcopy.sh: fix error with handling ssh agent. 2024-12-11 03:14:02 +01:00
dbe87cf75f cleanup directory 'Moved-o-borg2'. 2024-12-10 17:54:35 +01:00
3eb272a2a3 ignore ditrctory 'Moved-o-borg2'. 2024-12-10 17:52:12 +01:00
5a288f6cb4 ignore ditrctory 'Moved-o-borg2'. 2024-12-10 17:50:00 +01:00
7d6774149c Change add (default) ssh key fot ssh-agent. 2024-12-10 14:17:36 +01:00
64971f6afa Add support for network directories on backups for remote maschines. 2024-05-03 13:49:13 +02:00
a70ea6a55c mysql_backup.sh: fix error: in case of backup from localhost closing ';' sign was missing. 2024-01-30 00:27:07 +01:00
041fc50d5d Add flag '-B' if rcopy_manual.sh was called; fix error if onlx netdirs should be saved. 2024-01-29 15:21:31 +01:00
2a6ab0d97a mysql_backup.sh: don't include databases 'mysql' and 'sys' into database creation sql file. 2023-08-16 17:58:48 +02:00
441f3cee66 mysql_backup.sh: add 'Create user' scripts.. 2023-08-12 22:57:51 +02:00
119bc81043 hosts/scripts/mysql_backup.sh: exclude some user like 'mariadb.sys' from user-creation-statements. 2023-08-12 15:47:23 +02:00
7 changed files with 439 additions and 166 deletions

9
.gitignore vendored
View File

@ -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/*

View File

@ -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

View File

@ -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

View File

@ -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"
## - ## -
## - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ## - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@ -253,15 +255,15 @@ if $ARCHIVE ;then
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then if [ -n "$mysql_credential_args" ] ; then
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$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'\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \ $ssh $ssh_options ${ssh_user}@$srcHost "$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.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLGrants-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
else else
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$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'\" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed 's/\$/;/g'" \ $ssh $ssh_options ${ssh_user}@$srcHost "$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.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLGrants-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
@ -269,15 +271,15 @@ 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'" | $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.sql-${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'" | $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.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLGrants-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
@ -291,9 +293,9 @@ if $ARCHIVE ;then
if [ "$retval" = 0 ];then if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false [ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLGrants.sql-${filedate}.sql 2> $err_Log $gzip ${_backupDestArchiveDir}/MySQLGrants-${filedate}.sql 2> $err_Log
retval=$? retval=$?
err_msg="Cannot gzip \"MySQLGrants.sql-${filedate}.sql\"" err_msg="Cannot gzip \"MySQLGrants-${filedate}.sql\""
keep_backup_on_error=true keep_backup_on_error=true
fi fi
fi fi
@ -325,7 +327,7 @@ if $ARCHIVE ;then
echolog "" echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n" echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLGrants.sql-${filedate}.sql rm -f ${_backupDestArchiveDir}/MySQLGrants-${filedate}.sql
fi fi
else else
@ -358,9 +360,9 @@ if $ARCHIVE ;then
if [ "$MYSQL_VERSION_NUM" -ge 050700 ]; then if [ "$MYSQL_VERSION_NUM" -ge 050700 ]; then
## ----------------------------- ## -----------------------------
## - Backup/Create User Craetion sql statements (00) ## - Backup/Create User Craetion sql statements MySQL (00)
## - ## -
info_msg="create User creation SQL file (00)" info_msg="create User creation SQL file MySQL (00)"
echononl "\t$info_msg" echononl "\t$info_msg"
## - begin timestamp ## - begin timestamp
@ -372,15 +374,15 @@ if $ARCHIVE ;then
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then if [ -n "$mysql_credential_args" ] ; then
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$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'\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \ $ssh $ssh_options ${ssh_user}@$srcHost "$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.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
else else
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$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'\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \ $ssh $ssh_options ${ssh_user}@$srcHost "$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.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
@ -388,15 +390,15 @@ 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'" | $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.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
else else
$( $(
$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'" | $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.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
@ -404,15 +406,15 @@ if $ARCHIVE ;then
fi fi
err_msg="Cannot create User Creation SQL file (00)" err_msg="Cannot create User Creation SQL file MySQL (00)"
keep_backup_on_error=false keep_backup_on_error=false
if [ "$retval" = 0 ];then if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false [ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log $gzip ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
retval=$? retval=$?
err_msg="Cannot gzip \"MySQLCreateUser-00.sql-${filedate}.sql\"" err_msg="Cannot gzip \"MySQLCreateUser-00-${filedate}.sql\""
keep_backup_on_error=true keep_backup_on_error=true
fi fi
fi fi
@ -444,7 +446,7 @@ if $ARCHIVE ;then
echolog "" echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n" echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql rm -f ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql
fi fi
else else
@ -464,14 +466,14 @@ if $ARCHIVE ;then
echolog " [ $duration ]" echolog " [ $duration ]"
fi fi
## - End: Backup/Create User Craetion sql statements (00) ## - End: Backup/Create User Craetion sql statements MySQL (00)
## ---------------------------------- ## ----------------------------------
## ----------------------------- ## -----------------------------
## - Backup/Create User Craetion sql statements (01) ## - Backup/Create User Craetion sql statements MySQL (01)
## - ## -
info_msg="create User creation SQL file (01)" info_msg="create User creation SQL file MySQL (01)"
echononl "\t$info_msg" echononl "\t$info_msg"
## - begin timestamp ## - begin timestamp
@ -483,15 +485,15 @@ if $ARCHIVE ;then
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then if [ -n "$mysql_credential_args" ] ; then
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'\"" \ $ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
else else
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'\"" \ $ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
@ -499,15 +501,15 @@ 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 DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'" \ $mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
else else
$( $(
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'" \ $mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
@ -515,15 +517,15 @@ if $ARCHIVE ;then
fi fi
err_msg="Cannot create User Creation SQL file (01)" err_msg="Cannot create User Creation SQL file MySQL (01)"
keep_backup_on_error=false keep_backup_on_error=false
if [ "$retval" = 0 ];then if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false [ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log $gzip ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql 2> $err_Log
retval=$? retval=$?
err_msg="Cannot gzip \"MySQLCreateUser-01.sql-${filedate}.sql\"" err_msg="Cannot gzip \"MySQLCreateUser-01-${filedate}.sql\""
keep_backup_on_error=true keep_backup_on_error=true
fi fi
fi fi
@ -555,7 +557,7 @@ if $ARCHIVE ;then
echolog "" echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n" echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql rm -f ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql
fi fi
else else
@ -575,15 +577,13 @@ if $ARCHIVE ;then
echolog " [ $duration ]" echolog " [ $duration ]"
fi fi
## - End: Backup/Create User Craetion sql statements (01) ## - End: Backup/Create User Craetion sql statements MySQL (01)
## ---------------------------------- ## ----------------------------------
elif [ $MYSQL_VERSION_NUM -ge 050600 ]; then
## ----------------------------- ## -----------------------------
## - User Craetion sql statements for MySQL 5.7.x ## - Create User Craetion sql statements for MariaDB
## - ## -
info_msg="create User creation SQL file for MySQL 5.7.x" info_msg="create User creation SQL file for MariaDB"
echononl "\t$info_msg" echononl "\t$info_msg"
## - begin timestamp ## - begin timestamp
@ -592,50 +592,50 @@ if $ARCHIVE ;then
filedate=`$date +"%Y-%m-%d-%H%M"` filedate=`$date +"%Y-%m-%d-%H%M"`
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then if [ -n "$mysql_credential_args" ] ; then
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') 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'\"" \ $ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED BY PASSWORD ''',authentication_string,'''; FLUSH PRIVILEGES;') 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'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-MariaDB-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
else else
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') 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'\"" \ $ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED BY PASSWORD ''',authentication_string,'''; FLUSH PRIVILEGES;') 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'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-MariaDB-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
fi fi
else else
if [ -n "$mysql_credential_args" ] ; then if [ -n "$mysql_credential_args" ] ; then
$( $(
$mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') 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'" \ $mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED BY PASSWORD ''',authentication_string,'''; FLUSH PRIVILEGES;') 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'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-MariaDB-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
else else
$( $(
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') 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'" \ $mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED BY PASSWORD ''',authentication_string,'''; FLUSH PRIVILEGES;') 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'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-MariaDB-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
fi fi
fi fi
err_msg="Cannot create User Creation SQL file for MySQL 5.7.x" err_msg="Cannot create User Creation SQL file for MariaDB"
keep_backup_on_error=false keep_backup_on_error=false
if [ "$retval" = 0 ];then if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false [ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log $gzip ${_backupDestArchiveDir}/MySQLCreateUser-MariaDB-${filedate}.sql 2> $err_Log
retval=$? retval=$?
err_msg="Cannot gzip \"MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql\"" err_msg="Cannot gzip \"MySQLCreateUser-MariaDB-${filedate}.sql\""
keep_backup_on_error=true keep_backup_on_error=true
fi fi
fi fi
@ -667,7 +667,119 @@ if $ARCHIVE ;then
echolog "" echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n" echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql rm -f ${_backupDestArchiveDir}/MySQLCreateUser-MariaDB-${filedate}.sql
fi
else
## - print durations right-aligned
## -
[ -z $right_tabstop ] && right_tabstop=65
_tmp_string="${info_msg}${duration}"
_strlen=${#_tmp_string}
_count_blank=`expr $right_tabstop - $_strlen`
_str_blanks=""
while [ $_count_blank -gt 1 ]; do
_str_blanks="$_str_blanks "
_count_blank=`expr $_count_blank - 1`
done
echononl "$_str_blanks"
echolog " [ $duration ]"
fi
## - End: Create User Craetion sql statementsfor MariaDB
## ----------------------------------
elif [ $MYSQL_VERSION_NUM -ge 050600 ]; then
## -----------------------------
## - User Craetion sql statements for MySQL 5.7.x
## -
info_msg="create User creation SQL file for MySQL 5.7.x"
echononl "\t$info_msg"
## - begin timestamp
## -
b_timestamp=`$date +"%s"`
filedate=`$date +"%Y-%m-%d-%H%M"`
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') 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'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') 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'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
else
if [ -n "$mysql_credential_args" ] ; then
$(
$mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') 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'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') 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'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
fi
err_msg="Cannot create User Creation SQL file for MySQL 5.7.x"
keep_backup_on_error=false
if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7-${filedate}.sql 2> $err_Log
retval=$?
err_msg="Cannot gzip \"MySQLCreateUser-for-MySQL-5.7-${filedate}.sql\""
keep_backup_on_error=true
fi
fi
## - end timestamp
## -
e_timestamp=`$date +"%s"`
## - determin duration
## -
_time=`expr $e_timestamp - $b_timestamp`
t_h=`expr $_time / 60 / 60`
t_rest_h=`expr $_time - $t_h \\* 60 \\* 60`
t_m=`expr $t_rest_h / 60`
t_s=`expr $t_rest_h - $t_m \\* 60`
duration=""
if [ $t_h -gt 0 ]; then
duration="$t_h h : $t_m min : $t_s sec"
elif [ $t_m -gt 0 ];then
duration="$t_m min : $t_s sec"
else
duration="$t_s sec"
fi
## - look about errors..
## -
if [ "$retval" != "0" ]; then
print_error_stdout "${err_msg}:\n $(cat $err_Log)"
echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7-${filedate}.sql
fi fi
else else
@ -695,9 +807,9 @@ if $ARCHIVE ;then
elif [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then elif [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then
## ----------------------------- ## -----------------------------
## - Create User Craetion sql statements (MariaDB) ## - Backup/Create User Craetion sql statements MariaDB (00)
## - ## -
info_msg="create User creation SQL file (MariaDB)" info_msg="create User creation SQL file MariaDB (00)"
echononl "\t$info_msg" echononl "\t$info_msg"
## - begin timestamp ## - begin timestamp
@ -709,15 +821,15 @@ if $ARCHIVE ;then
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then if [ -n "$mysql_credential_args" ] ; then
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'\"" \ $ssh $ssh_options ${ssh_user}@$srcHost "$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.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
else else
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'\"" \ $ssh $ssh_options ${ssh_user}@$srcHost "$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.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
@ -725,15 +837,15 @@ 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 DISTINCT CONCAT('CREATE USER IF NOT EXISTS''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'" \ $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.sql-${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 DISTINCT CONCAT('CREATE USER IF NOT EXISTS''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'" \ $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.sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
@ -741,15 +853,15 @@ if $ARCHIVE ;then
fi fi
err_msg="Cannot create User Creation SQL file (MariaDB)" err_msg="Cannot create User Creation SQL file MariaDB (00)"
keep_backup_on_error=false keep_backup_on_error=false
if [ "$retval" = 0 ];then if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false [ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log $gzip ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql 2> $err_Log
retval=$? retval=$?
err_msg="Cannot gzip \"MySQLCreateUser.sql-${filedate}.sql\"" err_msg="Cannot gzip \"MySQLCreateUser-00-${filedate}.sql\""
keep_backup_on_error=true keep_backup_on_error=true
fi fi
fi fi
@ -781,7 +893,7 @@ if $ARCHIVE ;then
echolog "" echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n" echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql rm -f ${_backupDestArchiveDir}/MySQLCreateUser-00-${filedate}.sql
fi fi
else else
@ -801,13 +913,13 @@ if $ARCHIVE ;then
echolog " [ $duration ]" echolog " [ $duration ]"
fi fi
## - End: Create User Craetion sql statements (MariaDB) ## - End: Backup/Create User Craetion sql statements (MariaDB)
## ---------------------------------- ## ----------------------------------
## ----------------------------- ## -----------------------------
## - Create User Craetion sql statements for MySQL 5.7.x (from MariaDB) ## - Create User Craetion sql statements (MariaDB 01)
## - ## -
info_msg="create User creation SQL file for MySQL 5.7.x (from MariaDB)" info_msg="create User creation SQL file MariaDB (01)"
echononl "\t$info_msg" echononl "\t$info_msg"
## - begin timestamp ## - begin timestamp
@ -819,15 +931,15 @@ if $ARCHIVE ;then
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then if [ -n "$mysql_credential_args" ] ; then
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'\"" \ $ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost''; SET PASSWORD FOR ''',user,'''@''localhost'' = ''',password,'''; FLUSH PRIVILEGES;') 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'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
else else
$( $(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'\"" \ $ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost''; SET PASSWORD FOR ''',user,'''@''localhost'' = ''',password,'''; FLUSH PRIVILEGES;') 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'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
@ -835,15 +947,15 @@ 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 DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'" \ $mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost''; SET PASSWORD FOR ''',user,'''@''localhost'' = ''',password,'''; FLUSH PRIVILEGES;') 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'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
else else
$( $(
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'" \ $mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost''; SET PASSWORD FOR ''',user,'''@''localhost'' = ''',password,'''; FLUSH PRIVILEGES;') 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'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log > ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql 2> $err_Log
exit $? exit $?
) )
retval=$? retval=$?
@ -851,15 +963,15 @@ if $ARCHIVE ;then
fi fi
err_msg="Cannot create User Creation SQL file for MySQL-5.7.x (MariaDB)" err_msg="Cannot create User Creation SQL file MariaDB 01"
keep_backup_on_error=false keep_backup_on_error=false
if [ "$retval" = 0 ];then if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false [ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log $gzip ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql 2> $err_Log
retval=$? retval=$?
err_msg="Cannot gzip \"MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql\"" err_msg="Cannot gzip \"MySQLCreateUser-01-${filedate}.sql\""
keep_backup_on_error=true keep_backup_on_error=true
fi fi
fi fi
@ -891,7 +1003,117 @@ if $ARCHIVE ;then
echolog "" echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n" echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql rm -f ${_backupDestArchiveDir}/MySQLCreateUser-01-${filedate}.sql
fi
else
## - print durations right-aligned
## -
[ -z $right_tabstop ] && right_tabstop=65
_tmp_string="${info_msg}${duration}"
_strlen=${#_tmp_string}
_count_blank=`expr $right_tabstop - $_strlen`
_str_blanks=""
while [ $_count_blank -gt 1 ]; do
_str_blanks="$_str_blanks "
_count_blank=`expr $_count_blank - 1`
done
echononl "$_str_blanks"
echolog " [ $duration ]"
fi
## - End: Create User Craetion sql statements MariaDB (01)
## ----------------------------------
## -----------------------------
## - Create User Craetion sql statements for MySQL 5.7.x (from MariaDB)
## -
info_msg="create User creation SQL file for MySQL 5.7.x (from MariaDB)"
echononl "\t$info_msg"
## - begin timestamp
## -
b_timestamp=`$date +"%s"`
filedate=`$date +"%Y-%m-%d-%H%M"`
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
else
if [ -n "$mysql_credential_args" ] ; then
$(
$mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') 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'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
fi
err_msg="Cannot create User Creation SQL file for MySQL-5.7.x (MariaDB)"
keep_backup_on_error=false
if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7-${filedate}.sql 2> $err_Log
retval=$?
err_msg="Cannot gzip \"MySQLCreateUser-for-MySQL-5.7-${filedate}.sql\""
keep_backup_on_error=true
fi
fi
## - end timestamp
## -
e_timestamp=`$date +"%s"`
## - determin duration
## -
_time=`expr $e_timestamp - $b_timestamp`
t_h=`expr $_time / 60 / 60`
t_rest_h=`expr $_time - $t_h \\* 60 \\* 60`
t_m=`expr $t_rest_h / 60`
t_s=`expr $t_rest_h - $t_m \\* 60`
duration=""
if [ $t_h -gt 0 ]; then
duration="$t_h h : $t_m min : $t_s sec"
elif [ $t_m -gt 0 ];then
duration="$t_m min : $t_s sec"
else
duration="$t_s sec"
fi
## - look about errors..
## -
if [ "$retval" != "0" ]; then
print_error_stdout "${err_msg}:\n $(cat $err_Log)"
echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7-${filedate}.sql
fi fi
else else
@ -939,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
@ -955,7 +1181,7 @@ if $ARCHIVE ;then
if $mysql_gzip ; then if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQL_Create_Databases-${filedate}.sql 2> $err_Log $gzip ${_backupDestArchiveDir}/MySQL_Create_Databases-${filedate}.sql 2> $err_Log
retval=$? retval=$?
err_msg="Cannot gzip \"MySQLGrants.sql-${filedate}.sql\"" err_msg="Cannot gzip \"MySQLGrants-${filedate}.sql\""
keep_backup_on_error=true keep_backup_on_error=true
fi fi
fi fi

View File

@ -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,9 +64,19 @@ 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
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 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 )"
@ -53,10 +84,19 @@ 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

View File

@ -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 ======================="

View File

@ -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 $?