4、创建文件夹
#mkdir /data; #mkdir /data/backup #mkdir /data/backup/server1 #mkdir /data/backup/server2 #mkdir /data/sh 5、备份脚本(server1.sh,放在 /data/sh下) #backup online's website to localhost expect -c " set timeout 21600; #6hours spawn /usr/bin/scp -r 1.2.3.4:/data/backup/* /data/backup/server1/ expect { \"*yes/no*\" {send \"yes\r\"; exp_continue} \"*password*\" {send \"PASSWORD\r\";} } expect eof;" #remove x days before directory list_alldir(){ for file2 in `ls -a $1` do if [ x"$file2" != x"." -a x"$file2" != x".." ];then if [ -d "$1/$file2" ];then if [ $file2 -lt $dir ];then rm -rf $1/$file2 fi fi fi done } dir=$(date -d "-30 days" +%Y%m%d%H%M) list_alldir /data/backup/server1 6、设置脚本权限 #chmod -R 755 server1.sh 7、安装expect、scp #yum install expect; #yum install openssh-clients; 8、运行 #/data/sh/server1.sh 9、确定服务器时间为北京时间 查看当前日期及时间 #date(如时间不是北京时间,则做如下设置)
9.1、编辑配置文件 #vi /etc/sysconfig/clock 确定如下内容: ZONE="Asia/Shanghai" UTC=false ARC=false 9.2、时区设置为上海 #ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 9.3、对准时间 #yum install ntp #ntpdate asia.pool.ntp.org 9.4、硬件时间与系统时间一致 #/sbin/hwclock --systohc 10、添加计划任务 #vi /etc/crontab (北京时间01:00执行) 0 1 * * * root /data/sh/server1.sh 0 1 * * * root /data/sh/server2.sh
这样子到时间就自动执行备份了,服务器上的备份脚本如下:
backup.sh
#!/bin/sh #backup localhost sql and website files dir_name=$(date +%Y%m%d%H%M) mkdir /data/backup/$dir_name mysqldump -uroot -pPASSWORD db1>/data/backup/$dir_name/db1.sql mysqldump -uroot -pPASSWORD db2>/data/backup/$dir_name/db2.sql tar zcvf /data/backup/$dir_name/website1.tar.gz /data/www/website1 tar zcvf /data/backup/$dir_name/website2.tar.gz /data/www/website2 #delete x days before directory list_alldir(){ for file2 in `ls -a $1` do if [ x"$file2" != x"." -a x"$file2" != x".." ];then if [ -d "$1/$file2" ];then if [ $file2 -lt $dir ];then rm -rf $1/$file2 fi fi fi done } dir=$(date -d "-1 days" +%Y%m%d%H%M) list_alldir /data/backup 添加计划任务 #vi /etc/crontab (北京时间00:00执行) 0 0 * * * root /data/sh/backup.sh大功告成