一步一步来
1、关闭selinux
2、关闭防火墙
3、重启
5、备份脚本(server1.sh,放在 /data/sh下)
6、设置脚本权限
7、安装expect、scp
8、运行
9、确定服务器时间为北京时间
查看当前日期及时间
9.2、时区设置为上海
9.3、对准时间
9.4、硬件时间与系统时间一致
10、添加计划任务
添加计划任务
1、关闭selinux
#vi /etc/selinux/config
SELINUX=disabled
2、关闭防火墙
#chkconfig iptables off
3、重启
#reboot
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
(如时间不是北京时间,则做如下设置)
#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
大功告成