- 帖子
- 1008
- 主题
- 761
- 精华
- 0
- 积分
- 1794
- 贡献
- 941
- 激情
- 7771
- 阅读权限
- 100
- 最后登录
- 2020-4-28
|
在一个老外的博客里面看到一个备份服务器数据到dropbox的脚本,捷飞网络试了一下挺好用的。转载如下:' j, k0 d. F* c4 l) x
' F7 I1 z, L2 \4 d! F; \+ S
-
- #!/bin/bash
- DROPBOX_USER=”Your Dropbox username”
- DROPBOX_PASS=”Your Dropbox password”
- DROPBOX_DIR=”Directory in your dropbox account to store the backups, e.g. /backups”
- BACKUP_SRC=”/home /var/www /var/git /etc /root”
- BACKUP_DST=”/tmp”
- MYSQL_SERVER=”127.0.0.1″
- MYSQL_USER=”root”
- MYSQL_PASS=”Your MySQL password”
- #
- # Stop editing here.
- NOW=$(date +”%Y.%m.%d”)
- DESTFILE=”$BACKUP_DST/$NOW.tgz”
- #
- # Upload a file to Dropbox.
- # $1 = Source file
- # $2 = Destination file.
- function dropboxUpload
- {
- #
- # Code based on DropBox Uploader 0.6 from http://www.andreafabrizi.it/?dropbox_uploader
- LOGIN_URL=”https://www.dropbox.com/login”
- HOME_URL=”https://www.dropbox.com/home”
- UPLOAD_URL=”https://dl-web.dropbox.com/upload”
- COOKIE_FILE=”/tmp/du_cookie_$RANDOM”
- RESPONSE_FILE=”/tmp/du_resp_$RANDOM”
- UPLOAD_FILE=$1
- DEST_FOLDER=$2
- # Login
- echo -ne ” > Logging in…”
- curl -s -i -c $COOKIE_FILE -o $RESPONSE_FILE –data “login_email=$DROPBOX_USER&login_password=$DROPBOX_PASS&t=$TOKEN” “$LOGIN_URL”
- grep “location: /home” $RESPONSE_FILE > /dev/null
- if [ $? -ne 0 ]; then
- echo -e ” Failed!”
- rm -f “$COOKIE_FILE” “$RESPONSE_FILE”
- exit 1
- else
- echo -e ” OK”
- fi
- # Load home page
- echo -ne ” > Loading Home…”
- curl -s -i -b “$COOKIE_FILE” -o “$RESPONSE_FILE” “$HOME_URL”
- if [ $? -ne 0 ]; then
- echo -e ” Failed!”
- rm -f “$COOKIE_FILE” “$RESPONSE_FILE”
- exit 1
- else
- echo -e ” OK”
- fi
- # Get token
- 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/’)
- # Upload file
- echo -ne ” > Uploading ‘$UPLOAD_FILE’ to ‘DROPBOX$DEST_FOLDER/’…”
- 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”
- grep “HTTP/1.1 302 FOUND” “$RESPONSE_FILE” > /dev/null
- if [ $? -ne 0 ]; then
- echo -e ” Failed!”
- rm -f “$COOKIE_FILE” “$RESPONSE_FILE”
- exit 1
- else
- echo -e ” OK”
- rm -f “$COOKIE_FILE” “$RESPONSE_FILE”
- fi
- }
- # Backup files.
- mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS –all-databases > “$NOW-Databases.sql”
- tar cfz “$DESTFILE” $BACKUP_SRC “$NOW-Databases.sql”
- dropboxUpload “$DESTFILE” “$DROPBOX_DIR”
- 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. ^- $ crontab -e
- # m h dom mon dow command
- 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/ |
|