Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
tee /home/bond/backup/backup.log
tee -a, чтобы лог не перезаписывался, а делался append.rsync (source: rsync): fast remote file copy program (like rcp). In component main, is standard. Version 3.0.3-2ubuntu1 (intrepid), package size 324 kB, installed size 656 kB
function assert2 {
msg=$1
shift
test "$@"
ec=$?
if [ $ec -gt 0 ]
then
echo "ERROR (assertion $* failed): $msg"
exit 2
fi
}
function run {
"$@"
ec=$?
if [ $ec -gt 0 ]
then
echo "failed with error code $ec:" "$@"
exit 3
fi
}d=`date +%F--%H-%M`
assert2 "mysqldump_console is empty" ! -z "$mysqldump_console"
run $mysqldump_console --result-file=$backup_to"${d}-database.sql"...
if not machine_is_on(machine_info['host']):
turn_on_machine(machine_info['host'], machine_info['mac'])
assert not os.listdir(settings.target_mountpoint), 'mountpoint is not empty'
mount_command = ("smbmount //%(host)s/%(shared_path)s " + settings.target_mountpoint + " -o %(mount_options)s") % machine_info
if not os.system(mount_command) == 0:
raise Exception('mount error')
try:
# do backup
finally:
if not os.system("smbumount %s" % settings.target_mountpoint) == 0:
raise Exception('umount error')
...
Элементарный Bash скрипт для резервного копирования данных