UbuntuServer的mysql和webapps全自動異地備份

crontab文件位置:/etc/crontab

每天的凌晨3點1分 mysql備份
01 03 * * * root /usr/sbin/bakmysql 

每天的凌晨4點1分 複製mysql所有數據庫
01 04 * * * root /usr/sbin/bakmysql_fz

每天的凌晨5點1分 刪除規定時間前備份的文件
01 05 * * * root /usr/sbin/xkedu_del

每週6的凌晨2點1分 應用程序備份
01 02 * * 6 root /usr/sbin/webappsbak

每週6的凌晨6點1分 sh執行腳本將應用程序異地備份
01 06 * * 6 root sh /usr/sbin/webappsbak.sh

每天的凌晨6點30分 sh執行腳本將mysql異地備份
30 06 * * * root sh /usr/sbin/mysqlbak.sh

附上6個腳本文件

bakmysql

  1. rq=`date +%Y%m%d`  
  2. sudo mysqldump -u root -p密碼 --databases 庫名1 庫名2 > /var/mysqldata/mysql_$rq.sql  
  3. sleep 20  
  4. tar zcvf /var/mysql_backup/mysql_$rq.tar.gz /var/mysqldata/mysql_$rq.sql  
  5. sleep 20  


 bakmysql_fz

  1. sudo /etc/init.d/mysql stop  
  2. sleep 20  
  3. sudo /etc/init.d/tomcat6 stop  
  4. sleep 20  
  5. rq=`date +%Y%m%d`  
  6. tar zcvf /var/mysqldata/fz/mysql$rq.tar.gz /var/lib/mysql  
  7. sudo /etc/init.d/tomcat6 start  
  8. sudo /etc/init.d/mysql start  

xkedu_del

  1. DATE=$(date +%Y%m%d)  
  2. aa_DATE=$(date "-d 7 day ago" +%Y%m%d)  
  3. bb_DATE=$(date "-d 10 day ago" +%Y%m%d)  
  4. cc_DATE=$(date "-d 20 day ago" +%Y%m%d)  
  5. sudo rm /var/mysqldata/fz/mysql$aa_DATE.tar.gz  
  6. sudo rm /var/mysqldata/mysql_$bb_DATE.sql  
  7. sudo rm /var/mysql_backup/mysql_$cc_DATE.tar.gz  

webappsbak

  1. rq=`date +%Y%m%d`  
  2. tar zcvf /var/webappsbak/webappsbak$rq.tar.gz /var/lib/tomcat6/webapps  
  3. DATE=$(date +%Y%m%d)  
  4. aa_DATE=$(date "-d 7 day ago" +%Y%m%d)  
  5. bb_DATE=$(date "-d 10 day ago" +%Y%m%d)  
  6. cc_DATE=$(date "-d 20 day ago" +%Y%m%d)  
  7. sudo rm /var/webappsbak/webappsbak_$aa_DATE.tar.gz  
  8. sudo rm /var/webappsbak/webappsbak_$bb_DATE.sql  
  9. sudo rm /var/webappsbak/webappsbak_$cc_DATE.tar.gz  

以上4個文件要賦予可執行文件:

 

  1. chmod +x /usr/sbin/文件名 

webappsbak.sh 腳本文件

  1. #!/bin/bash  
  2. rq=`date +%Y%m%d`  
  3. HOST=ip地址  
  4. USER=用戶名  
  5. PASSWORD=密碼  
  6. PORT=端口號  
  7. TARGET=/var/webappsbak/webappsbak$rq.tar.gz #需要上傳的文件名及位置  
  8. DEST_DIR=/mnt/ad1/oabak/webappsbak/ #目的地路徑  
  9.  
  10. echo "Starting to sftp ${TARGET} to ${HOST}"  
  11.  
  12. lftp -u ${USER},${PASSWORD} -p $PORT sftp://${HOST} <<EOF 
  13. cd ${DEST_DIR}  
  14. put ${TARGET}  
  15. bye  
  16. EOF  

mysqlbak.sh

  1. #!/bin/bash  
  2. rq=`date +%Y%m%d`  
  3. HOST=ip地址  
  4. USER=用戶名  
  5. PASSWORD=密碼  
  6. PORT=端口  
  7. TARGET=/var/mysql_backup/mysql_$rq.tar.gz  
  8. DEST_DIR=/mnt/ad1/oabak/mysqlbak/  
  9.  
  10. echo "Starting to sftp ${TARGET} to ${HOST}"  
  11.  
  12. lftp -u ${USER},${PASSWORD} -p $PORT sftp://${HOST} <<EOF 
  13. cd ${DEST_DIR}  
  14. put ${TARGET}  
  15. bye  
  16. EOF  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章