DropBox定時備份方案,非網頁上傳,很是好用

文章地址:http://www.hostloc.com/thread-114247-1-1.htmlhtml

 

=================================================================================mysql

另一貼是之前登錄網站上傳備份,不那麼好用,並且使用網站上傳有限制.
我這個備份方案是直接使用dropbox同步,若是想實時同步就一直守護dropbox進程,會佔用必定資源.推薦小內存的VPS和我同樣使用cron定時備份.

1.linux上安裝dropbox
32位linuxlinux

  1. wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86
複製代碼

64位linuxsql

  1. wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64
複製代碼

解壓:數據庫

  1. tar xzvf dropbox.tar.gz
複製代碼

第一次運行生成host_id瀏覽器

  1. ~/.dropbox-dist/dropboxd &
複製代碼

生成id後,將host_id替換下面連接後面的字符在瀏覽器打開,輸入你的賬號密碼就綁定機器了.bash

  1. https://www.dropbox.com/cli_link?host_id=XXXXXXXXXXXXXXXXXXX
複製代碼

2.創建鏈接備份網站
正式開始同步你的網站,經過ln軟連接你全部要備份的目錄,例如:網站

  1. cd ~/Dropbox
  2. ln -s /home/wwwroot/html
  3. ln -s /home/wwwroot/htdocs
  4. ...
複製代碼

開始運行同步,美國的vps同步速度很是快的,1G的html文件,只花了幾分鐘所有同步完成spa

  1. ~/.dropbox-dist/dropboxd &
複製代碼

3.爲了節省資源,能夠不使用實時同步,只定時打開同步一天的文件再關掉以節省資源.
先關掉同步:rest

  1. killall dropbox
複製代碼

編寫定時同步腳本:

  1. vi backup.sh
複製代碼

代碼以下:

  1. #!/bin/sh
  2. start() {
  3. echo starting dropbox
  4. /root/.dropbox-dist/dropboxd &
  5. }
  6. stop() {
  7. echo stoping dropbox
  8. pkill dropbox
  9. }
  10. case "$1" in
  11. start)
  12. start
  13. ;;
  14. stop)
  15. stop
  16. ;;
  17. restart)
  18. stop
  19. start
  20. ;;
  21. esac
複製代碼

定時運行和關閉:

  1. chmod +x backup.sh
  2. crontab -e
複製代碼

天天4點開始同步,5點關閉同步.
其實通常天天更新數據很少不用打開這麼長時間,我本身用的一天只打開10分鐘,這個根據各人天天更新的數據量本身來設置.

  1. 0 4 * * * sh /root/backup.sh restart
  2. 0 5 * * * sh /root/backup.sh stop
複製代碼

4.乾脆把我從網上找的備份數據庫的腳本一併貢獻出來,適合懶人使用

  1. vi bakmysql.sh
複製代碼

腳本以下:

  1. #!/bin/bash
  2. DBName=修改成數據庫名
  3. DBUser=修改成數據庫用戶名
  4. DBPasswd=修改成數據庫密碼
  5. BackupPath=/root/Dropbox/
  6. LogFile=/root/db.log
  7. DBPath=/usr/local/mysql/var/ #備份的數據庫目錄
  8. #BackupMethod=mysqldump
  9. #BackupMethod=mysqlhotcopy
  10. #BackupMethod=tar
  11. NewFile="$BackupPath"db$(date +%y%m%d).tgz
  12. DumpFile="$BackupPath"db$(date +%y%m%d)
  13. OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz  #自動刪除5天前的備份
  14. echo "-------------------------------------------" >> $LogFile
  15. echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
  16. echo "--------------------------" >> $LogFile
  17. #Delete Old File
  18. if [ -f $OldFile ]
  19. then
  20.         rm -f $OldFile >> $LogFile 2>&1
  21.         echo "[$OldFile]Delete Old File Success!" >> $LogFile
  22. else
  23.         echo "[$OldFile]No Old Backup File!" >> $LogFile
  24. fi
  25. if [ -f $NewFile ]
  26. then
  27.         echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile
  28. else
  29.         case $BackupMethod in
  30.         mysqldump)
  31.                 if [ -z $DBPasswd ]
  32.                 then
  33.                         mysqldump -u $DBUser --opt $DBName > $DumpFile
  34.                 else
  35.                         mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile
  36.                 fi
  37.                 tar czvf $NewFile $DumpFile >> $LogFile 2>&1
  38.                 echo "[$NewFile]Backup Success!" >> $LogFile
  39.                 rm -rf $DumpFile
  40.                 ;;
  41.         mysqlhotcopy)
  42.                 rm -rf $DumpFile
  43.                 mkdir $DumpFile
  44.                 if [ -z $DBPasswd ]
  45.                 then
  46.                         mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
  47.                 else
  48.                         mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
  49.                 fi
  50.                 tar czvf $NewFile $DumpFile >> $LogFile 2>&1
  51.                 echo "[$NewFile]Backup Success!" >> $LogFile
  52.                 rm -rf $DumpFile
  53.                 ;;
  54.         *)
  55.                 service mysql stop >/dev/null 2>&1
  56.                 tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
  57.                 service mysql start >/dev/null 2>&1
  58.                 echo "[$NewFile]Backup Success!" >> $LogFile
  59.                 ;;
  60.         esac
  61. fi
  62. echo "-------------------------------------------" >> $LogFile
複製代碼

5.刪除卸載dropbox方法:

  1. killall dropbox
  2. rm -rf .dropbox .dropbox-dist Dropbox dropbox.tar.gz dbmakefakelib.py dbreadconfig.py
複製代碼
相關文章
相關標籤/搜索