$7.49 .com domain with free InstantPage Website Builder$1.99 Web Hosting   捷飞网络官方淘宝店   Godaddy 优惠码
返回列表 发帖
分享到:




[应用&技术] 如何设置备份VPS数据到dropbox的一键脚本

在一个老外的博客里面看到一个备份服务器数据到dropbox的脚本,捷飞网络试了一下挺好用的。转载如下:' j, k0 d. F* c4 l) x
' F7 I1 z, L2 \4 d! F; \+ S

  1. #!/bin/bash
  2. DROPBOX_USER=”Your Dropbox username”
  3. DROPBOX_PASS=”Your Dropbox password”
  4. DROPBOX_DIR=”Directory in your dropbox account to store the backups, e.g. /backups”
  5. BACKUP_SRC=”/home /var/www /var/git /etc /root”
  6. BACKUP_DST=”/tmp”
  7. MYSQL_SERVER=”127.0.0.1″
  8. MYSQL_USER=”root”
  9. MYSQL_PASS=”Your MySQL password”
  10. #
  11. # Stop editing here.
  12. NOW=$(date +”%Y.%m.%d”)
  13. DESTFILE=”$BACKUP_DST/$NOW.tgz”
  14. #
  15. # Upload a file to Dropbox.
  16. # $1 = Source file
  17. # $2 = Destination file.
  18. function dropboxUpload
  19. {
  20.         #
  21.         # Code based on DropBox Uploader 0.6 from http://www.andreafabrizi.it/?dropbox_uploader
  22.         LOGIN_URL=”https://www.dropbox.com/login”
  23.         HOME_URL=”https://www.dropbox.com/home”
  24.         UPLOAD_URL=”https://dl-web.dropbox.com/upload”
  25.         COOKIE_FILE=”/tmp/du_cookie_$RANDOM”
  26.         RESPONSE_FILE=”/tmp/du_resp_$RANDOM”
  27.     UPLOAD_FILE=$1
  28.     DEST_FOLDER=$2
  29.         # Login
  30.         echo -ne ” > Logging in…”
  31.         curl -s -i -c $COOKIE_FILE -o $RESPONSE_FILE –data “login_email=$DROPBOX_USER&login_password=$DROPBOX_PASS&t=$TOKEN” “$LOGIN_URL”
  32.         grep “location: /home” $RESPONSE_FILE > /dev/null
  33.         if [ $? -ne 0 ]; then
  34.                 echo -e ” Failed!”
  35.                 rm -f “$COOKIE_FILE” “$RESPONSE_FILE”
  36.                 exit 1
  37.         else
  38.                 echo -e ” OK”
  39.         fi
  40.         # Load home page
  41.         echo -ne ” > Loading Home…”
  42.         curl -s -i -b “$COOKIE_FILE” -o “$RESPONSE_FILE” “$HOME_URL”
  43.         if [ $? -ne 0 ]; then
  44.                 echo -e ” Failed!”
  45.                 rm -f “$COOKIE_FILE” “$RESPONSE_FILE”
  46.                 exit 1
  47.         else
  48.                 echo -e ” OK”
  49.         fi
  50.         # Get token
  51.         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/’)
  52.         # Upload file
  53.         echo -ne ” > Uploading ‘$UPLOAD_FILE’ to ‘DROPBOX$DEST_FOLDER/’…”
  54.     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”
  55.     grep “HTTP/1.1 302 FOUND” “$RESPONSE_FILE” > /dev/null
  56.     if [ $? -ne 0 ]; then
  57.         echo -e ” Failed!”
  58.                 rm -f “$COOKIE_FILE” “$RESPONSE_FILE”
  59.         exit 1
  60.     else
  61.         echo -e ” OK”
  62.                 rm -f “$COOKIE_FILE” “$RESPONSE_FILE”
  63.     fi
  64. }
  65. # Backup files.
  66. mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS –all-databases > “$NOW-Databases.sql”
  67. tar cfz “$DESTFILE” $BACKUP_SRC “$NOW-Databases.sql”
  68. dropboxUpload “$DESTFILE” “$DROPBOX_DIR”
  69. rm -f “$NOW-Databases.sql” “$DESTFILE”
复制代码

( ~8 ?" o6 x9 v) @' P+ z  K
5 `( @; v* T5 ~保存为ropboxBackup.sh
3 i# C- o6 I- V5 Cchmod +x! H3 I* C7 w: Q2 W' Z$ B: v3 j

# m" g9 f  ~6 [" C设置启动时间:" U' }3 i9 f( z- i$ c0 }" Z7 i" A

8 z' p. r% p# C" m. u. ^
  1. $ crontab -e
  2. # m h dom mon dow command
  3. 0 0 1 * * /bin/bash /root/DropboxBackup.sh
复制代码
1 H& i! T# l; `* ~( @% l
0 |( D% [- X5 ?
英文版原文连接:http://davehope.co.uk/Blog/backup-your-linux-vps-to-dropbox/

返回列表
Namecheap
Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting
互联网安全