美国主机极客 - 帮助您寻找最适合您的美国虚拟主机

定时自动备份主机文件到本地 – Dropbox

前面介绍过,使用Cpanel空间的时钟守护作业(Cron Jobs)定时备份网站文件到异地服务器,今天来个更高级的,定时把网站文件备份到本地,使用Dropbox完全可以实现。

使用美国主机的朋友,一般都非常熟悉Linux,定时自动执行命令是使用Linux的Cron,Cpanel面板上把它翻译为 时钟守护作业。下面是定时自动备份主机文件到本地的具体步骤:

1、注册Dropbox

Dropbox官网:https://www.dropbox.com

2、登录主机,新建.sh文件

新建backup.sh脚本,复制下面的内容到backup.sh,点击下载脚本

  1. #!/bin/bash
  2. DROPBOX_USER="Dropbox Email 帐号"
  3. DROPBOX_PASS="Dropbox 密码"
  4. #Dropbox上传目录 默认是dropbox文件夹
  5. DROPBOX_DIR="/dropbox"
  6. #要备份的文件路径
  7. BACKUP_SRC="/home/myuser/public_html"
  8. #临时目录
  9. BACKUP_DST="/tmp"
  10. MYSQL_SERVER="127.0.0.1"
  11. #mysql用户名
  12. MYSQL_USER="myuser"
  13. #mysql用户密码
  14. MYSQL_PASS="Your MySQL password"
  15.  
  16. # based on http://www.hostgeeker.org/jiaocheng/backup-to-dropbox/
  17. NOW=$(date +"%Y.%m.%d")
  18. DESTFILE="$BACKUP_DST/$NOW.tgz"
  19.  
  20. #
  21. # Upload a file to Dropbox.
  22. # $1 = Source file
  23. # $2 = Destination file.
  24. function dropboxUpload
  25. {
  26.         #
  27.         # Code based on DropBox Uploader 0.6 from http://www.hostgeeker.org/jiaocheng/backup-to-dropbox/
  28.         LOGIN_URL="https://www.dropbox.com/login"
  29.         HOME_URL="https://www.dropbox.com/home"
  30.         UPLOAD_URL="https://dl-web.dropbox.com/upload"
  31.         COOKIE_FILE="/tmp/du_cookie_$RANDOM"
  32.         RESPONSE_FILE="/tmp/du_resp_$RANDOM"
  33.  
  34.     UPLOAD_FILE=$1
  35.     DEST_FOLDER=$2
  36.  
  37.         # Login
  38.         echo -ne " > Logging in..."
  39.         curl -s -i -c $COOKIE_FILE -o $RESPONSE_FILE --data "login_email=$DROPBOX_USER&login_password=$DROPBOX_PASS&t=$TOKEN" "$LOGIN_URL"
  40.         grep "location: /home" $RESPONSE_FILE > /dev/null
  41.  
  42.         if [ $? -ne 0 ]; then
  43.                 echo -e " Failed!"
  44.                 rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
  45.                 exit 1
  46.         else
  47.                 echo -e " OK"
  48.         fi
  49.  
  50.         # Load home page
  51.         echo -ne " > Loading Home..."
  52.         curl -s -i -b "$COOKIE_FILE" -o "$RESPONSE_FILE" "$HOME_URL"
  53.  
  54.         if [ $? -ne 0 ]; then
  55.                 echo -e " Failed!"
  56.                 rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
  57.                 exit 1
  58.         else
  59.                 echo -e " OK"
  60.         fi
  61.  
  62.         # Get token
  63.         TOKEN=$(cat "$RESPONSE_FILE" | tr -d '\n' | sed 's/.*<form action="https:\/\/dl-web.dropbox.com\/upload"[^>]*>\s*<input type="hidden" name="t" value="\([a-z 0-9]*\)".*/\1/')
  64.  
  65.         # Upload file
  66.         echo -ne " > Uploading '$UPLOAD_FILE' to 'DROPBOX$DEST_FOLDER/'..."
  67.     curl -s -i -b $COOKIE_FILE -o $RESPONSE_FILE -F "plain=yes" -F "dest=$DEST_FOLDER" -F "t=$TOKEN" -F "file=@$UPLOAD_FILE"  "$UPLOAD_URL"
  68.     grep "HTTP/1.1 302 FOUND" "$RESPONSE_FILE" > /dev/null
  69.  
  70.     if [ $? -ne 0 ]; then
  71.         echo -e " Failed!"
  72.                 rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
  73.         exit 1
  74.     else
  75.         echo -e " OK"
  76.                 rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
  77.     fi
  78. }
  79.  
  80. #mysql数据库备份
  81. mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
  82. #压缩
  83. tar cfz "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"
  84. #上传
  85. dropboxUpload "$DESTFILE" "$DROPBOX_DIR"
  86.  
  87. rm -f "$NOW-Databases.sql" "$DESTFILE"

3、修改权限为755,运行backup.sh

如果是虚拟主机,并且开通了SSH,可以使用chmod 755 backup.sh命令修改权限,然后运行backup.sh。

4、使用Cron,定时自动运行backup.sh

Cpanel用户,在时钟守护作业 页面,添加计时程序作业就成!

Cpanel Cron

5、大功告成

到现在,Dropbox就是按你设置的周期,自动将主机上面的文件,备份到本地电脑!

相关内容

3 次 吐槽

  1. bjd 说道:

    这个现在还有用吗???

  2. Lucas 说道:

    請問一下,如果我只要備份資料庫到dropbox,不需要備份網站檔案,我應該怎麼修改您的腳本呢?

  3. [...] 到现在,Dropbox就是按你设置的周期,自动将主机上面的文件,备份到本地电脑!(来自:主机极客) 本文标签: 主机,备份,文件 本文链接: 定时自动备份主机文件到本地 – Dropbox 版权所有: 除非注明,文章均为蓝枫博客原创,转载请注明出处及链接! 订阅更新: 您可以 订阅我们 的内容更新或者 分享给更多的朋友 上一篇: WordPress技巧:日志缩略图功能深度剖析 没有了,已经是最新文章了 打印本文 收藏分享 RSS订阅 复制链接 /*640*60,创建于2012-5-13*/ var cpro_id = 'u894725'; [...]

Leave a Reply

Copyright © 2009‐2018 HostGeeker All Rights Reserved. 日志存档 | Sitemap | Rss
Hosting By JustHost 载入页面时间:0.242秒.