106 lines
3.2 KiB
Bash
Executable File
106 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
## - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
## -
|
|
## - If network directory have to mount (its only possible if backuping
|
|
## - localhost) you need an entry in your /etc/fstab, becaus we mount thuch
|
|
## - remote directories with "mount <remote directory)
|
|
## -
|
|
## - i.e. for a samba mounted directory you need an entry like:
|
|
## -
|
|
## - //192.168.100.20/qinter /mnt/file-win7/qinter smbfs noauto,user=Administrator,password=chnarzfoo5 0 0
|
|
## -
|
|
## - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
err_Log=${LOCK_DIR}/dir.err.log
|
|
> $err_Log
|
|
|
|
## - load functions
|
|
## -
|
|
. $rcopy_functions_file
|
|
|
|
if $mount_netdir ; then
|
|
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
|
|
|
|
## - 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 ?
|
|
## -
|
|
if ! df | grep "$backup_dir" > /dev/null 2>&1 ;then
|
|
$mount $backup_dir > /dev/null 2>&1
|
|
fi
|
|
|
|
sleep 5
|
|
|
|
if ! df | grep "$backup_dir" > /dev/null 2>&1 ;then
|
|
print_error_stdout "Cannot mount network directory to \"$backup_dir\":\n $(cat $err_Log)"
|
|
echolog ""
|
|
echolog "\t[ERROR] Cannot mount network directory to \"$backup_dir\""
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
## - Check if directory is empty
|
|
## -
|
|
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
|
|
|
|
$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
|
|
fi
|
|
|
|
exit 0
|