linux自动备份网站和数据库
两台服务器111,和117服务器,每天完成111服务器上网站和数据库自动备份到117服务器上
1:我的111服务器上是当前用户:sx
A: 查看当前用户的计划任务:crontab -l是查看当前用户的任务 用 vi crontab -e 是为sxw用户创建一个计划任务
第一行:每天3点运行/home/sxw/rsync201.sh shell脚本,
第二行:和第三行是每天下午7点运行tar包,gaokaotong和phpcms文件
第三行:每天7点22分运行/homesxw/back_up.sh shell脚本,
注意:这里是当前用户sxw,所以要shell脚本路径要有用户sxw权限,在这里/home/sxw/back_up shell脚本,是当前用户sxw用户的家目录。
B: 111服务器上/home/sxw/back_up.sh脚本
code:
-bash-3.2$ vim /home/sxw/back_up.sh
#!/bin/sh
echo "开始备份数据库"
mysqldump -u jeecms -pjeecms1234 gktcms > gktcms.sql
mysqldump -u jeecms -pjeecms1234 phpcms > phpcms.sql
echo "备份数据库完成,复制到117服务器端"
scp -P 10022 gktcms.sql zk@114.113.145.117:/home/zk
scp -P 10022 phpcms.sql zk@114.113.145.117:/home/zk
scp -r -P 10022 /opt/www/www2/phpcms.tar.gz zk@114.113.145.117:/home/zk/
scp -r -P 10022 /opt/www/www2/gaokaotong.tar.gz zk@114.113.145.117:/home/zk/
echo "发送完成"
C: 还要在111上做ssh信任,这个可参照ssh资料。很简单,只需要建立两个密钥。
2: 117服务器上/homezk/自动就会多出两个tar包文件,phpcms.tar.gz 和gaokaotong.tar.gz
这里每天自动保存两个文件,phpcms.tar.gz 和 gaokaotong.tar.gz文件
这里做了一个shell脚本,保存前两天的文件,跟上述111服务器上的建立计划任务一样:
A: 查看117的计划任务: crontabl -l
B: 在查看/home/zk/back.sh 的shell编写
code:
[zk@DB2 ~]$ vi /home/zk/back.sh
#!/bin/sh
TARFILE="/home/zk/phpcms.tar.gz"
if [ -f $TARFILE ];then
mv /home/zk/phpcms.tar.gz /home/zk/phpcms_$(date +%Y%m%d).tar.gz
#remove date file
DATE_B=$(date -d"2 day ago" +%Y%m%d)
FILENAME="/home/zk/phpcms_"$DATE_B".tar.gz"
if [ -f $FILENAME ];then
rm -rf /home/zk/phpcms_$DATE_B.tar.gz
else
echo "没有可删除文件"
fi
else
echo "没有源文件"
fi
~
结束。