From 64971f6afa52b8629697f6579d141712797a13c7 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 3 May 2024 13:49:13 +0200 Subject: [PATCH] Add support for network directories on backups for remote maschines. --- hosts/scripts/net_mounted_dir_backup.sh | 64 ++++++++++++++++++++----- 1 file changed, 52 insertions(+), 12 deletions(-) diff --git a/hosts/scripts/net_mounted_dir_backup.sh b/hosts/scripts/net_mounted_dir_backup.sh index a4b468e..fec25aa 100755 --- a/hosts/scripts/net_mounted_dir_backup.sh +++ b/hosts/scripts/net_mounted_dir_backup.sh @@ -12,6 +12,8 @@ ## - ## - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +err_Log=${LOCK_DIR}/dir.err.log +> $err_Log ## - load functions ## - @@ -19,10 +21,29 @@ if $mount_netdir ; 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 "" - echolog "\t[ERROR] Mounting network directories is only possible for localhost - yet" - exit 1 + + ## - Network directory mounted ? + ## - + 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 ## - Network directory mounted ? ## - @@ -43,20 +64,39 @@ fi ## - Check if directory is empty ## - -if [ ! "$(ls -A $backup_dir)" ]; then - echolog "\t[ NOTICE ]: Directory \"$backup_dir\" is empty. So nothing to do..\n" - exit 0 -fi +if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then + + 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 echolog "\n\tBackup network directory \"$backup_dir\" ( `$date +%H`:`$date +%M` h )" backup_dir=$backup_dir $script_dir/dir_backup.sh if $mount_netdir ; then if [ $srcHost != "localhost" ];then - 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 + + $ssh ${ssh_user}@${srcHost} "$sudo umount ${backup_dir}" > /dev/null 2> $err_Log + if [[ "$?" -ne 0 ]]; then + 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 $umount $backup_dir 2> /dev/null fi