10、如何定时向服务器作备份
向服务器作定时备份需要配合各系统的定时执行程序功能,在Linux平台通过cron来实现,Windows平台上通过任务计划来实现。
(1) Windows平台下
I 建立批处理文件,如backup.bat
II 编辑此文件并写入rsync文件传输语句:如:第9小节的无密码交互文件传输语句
III 通过Windows的任务计划功能将此脚本添加进去使其定期执行。
添加过程:【控制面板】->【性能和维护】->【任务计划】->【添加任务计划】
添加任务计划后的任务属性如图所示:
(2) Linux平台下
I 编写shell脚本程序,在其中加入备份命令行。并保存在/etc/cron.backup目录下。
II 使此备份脚本可执行。如:chmod u+x backup
III 加入cron使其定期运行。
#vi /etc/crontab
加入如范例所示语句
00 23 * * * root run-parts /etc/cron.backup
下面给出了一个Linux平台下较为完整的定期增量备份脚本以作参考:
#!/bin/sh
# This script does personal backups to a rsync backup server. You will end up
# with a 7 day rotating incremental backup. The incrementals will go
# into subdirectories named after the day of the week, and the current
# full backup goes into a directory called "current"
# directory to backup
BDIR=/var/csdb-data
# the name of the backup machine
[email=BSERVER=kevin@storage.sdg.ac.cn]BSERVER=kevin@storage.sdg.ac.cn[/email]
# your password on the backup server
export RSYNC_PASSWORD=123456
BACKUPDIR=`date +%A`
OPTS="--delete --backup --backup-dir=/$BACKUPDIR -a"
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin
# the following line clears the last weeks incremental directory
[ -d /home/kevin/emptydir ] || mkdir /home/kevin/emptydir
rsync --delete -a /home/kevin/emptydir/ $BSERVER::csdb/$BACKUPDIR/
rmdir /home/kevin/emptydir
# now the actual transfer
rsync $OPTS $BDIR $BSERVER::csdb/current