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
~
結束。