前面介绍过,使用Cpanel空间的时钟守护作业(Cron Jobs)按时备份网站文件到异地办事器,今天来个更高级的,按时把网站文件备份到本地,使用Dropbox完全可以实现。
使用美国主机的朋友,一般都很是熟悉Linux,按时自动执行命令是使用Linux的Cron,Cpanel面板上把它翻译为 时钟守护作业。下面是按时自动备份主机文件到本地的具体步调:
1、注册Dropbox
Dropbox官网:https://dropbox
2、登录主机,新建.sh文件
新建backup.sh脚本,复制下面的内容到backup.sh,点击下载脚本。
#!/bin/bash
DROPBOX_USER="Dropbox Email 帐号"
DROPBOX_PASS="Dropbox 密码"
#Dropbox上传目录 默认是dropbox文件夹
DROPBOX_DIR="/dropbox"
#要备份的文件路径
BACKUP_SRC="/home/myuser/public_html"
#姑且目录
BACKUP_DST="/tmp"
MYSQL_SERVER="127.0.0.1"
#mysql用户名
MYSQL_USER="myuser"
#mysql用户密码
MYSQL_PASS="Your MySQL password"
# based on ".***/jiaocheng/backup-to-dropbox/"
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 jike/jiaocheng/backup-to-dropbox/
LOGIN_URL="https://dropbox/login"
HOME_URL="https://dropbox/home"
UPLOAD_URL="https://dl-web.dropbox/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/.*
]*>s*
# 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
}
#mysql数据库备份
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"
3、修改权限为755,运行backup.sh
如果是虚拟主机,并且开通了SSH,可使用chmod 755 backup.sh命令修改权限,然后运行backup.sh。
4、使用Cron,按时自动运行backup.sh
Cpanel用户,在时钟守护作业 页面,添加计时法度作业就成!
5、年夜功成功
到现在,Dropbox就是按你设置的周期,自动将主机上面的文件,备份到本地电脑!
原文地址:jike/jiaocheng/backup-to-dropbox/