暑假的时候太忙了,32MB.CN 的 VPS 给忘续费了,数据全丢了,唉,之前一直说弄个计划任务定时备份到 Dropbox 的,直到前一段时间才弄上。 关键是数据无价啊,(虽然32MB.CN上的数据几乎没有价值),常备份是个好习惯,我选择备份到 Dropbox 是因为 Dropbox 是个同步盘,我的台式机和笔记本都装有 Dropbox,只要开机联网就会自动链接 Dropbox 同步数据,这样网站数据就不容易丢失了。
备份成功
相关脚本
nano backup.sh
放到哪里无所谓,记得赋予执行权限就可以了chmod +x backup.sh
#!/bin/bash
# Settings
DROPBOX_DIR="/Backups" #Dropbox中的文件夹名称
BACKUP_SRC="/home/wwwroot/website /home/wwwroot/database" #需要备份的文件夹路径,可以同时指定多个,32MB.CN用了Sqlite数据库,Sqlite以文件形式存放,故也要备份
BACKUP_DST="/miniVPS" #用来存放备份的文件夹路径
MYSQL_SERVER="127.0.0.1" #连接本地MySQL
MYSQL_USER="root" #本地MySQL的用户
MYSQL_PASS="123456" #本地MySQL的密码
# Stop editing here
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tgz"
LAST=$(date -d "2 months ago" +"%Y.%m.%d") #这里的时间可以根据需要进行修改,如"3 months ago"
# Backup files
ps -e | grep -c mysql
if [ $? -eq 0 ]; then
echo "Dumping databases..."
/web/mysql/bin/mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$BACKUP_DST/$NOW-Databases.sql" #这里的命令路径可以根据需要进行修改
else
echo "ERROR. Now exiting..."
exit 1
fi
if [ $? -eq 0 ]; then
echo "Packing files..."
tar -czf "$DESTFILE" $BACKUP_SRC "$BACKUP_DST/$NOW-Databases.sql"
else
echo "ERROR. Now exiting..."
exit 1
fi
if [ $? -eq 0 ]; then
/home/backup/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tgz" #这里的脚本路径可以根据需要进行修改
else
echo "ERROR. Now exiting..."
exit 1
fi
# Delete old files
if [ $? -eq 0 ]; then
/home/backup/dropbox_uploader.sh delete "$DROPBOX_DIR/$LAST.tgz" #这里的脚本路径可以根据需要进行修改
else
echo "ERROR. Now exiting..."
exit 1
fi
if [ $? -eq 0 ]; then
echo "Cleaning the backups..."
rm -f "$BACKUP_DST/$NOW-Databases.sql"
rm -f "$BACKUP_DST/$LAST.tgz"
else
echo "ERROR. Now exiting..."
exit 1
fi
其中的dropbox\_uploader.sh是Dropbox上传下载脚本,主页:http://www.andreafabrizi.it/?dropbox_uploader
apt-get install git
git clone http://github.com/andreafabrizi/Dropbox-Uploader.git
cd Dropbox-Uploader
chmod +x dropbox_uploader.sh
mv dropbox_uploader.sh /home/backup/
初始化脚本,并按照脚本中的提示到对应的Dropbox的网页中创建API,在脚本的交互界面中输入生成的Key
./dropbox_uploader.sh
初始化完成以后,便可以立即执行一次backup.sh脚本进行备份了
/home/backup/backup.sh
定时任务
光弄好了脚本可不行,没添加定时任务怎么定时备份。
crontab -e
设置为每天执行一次备份,具体时间可以根据需要进行修改
30 1 \* \* \* sh /home/backup/backup.sh
最高能备份多大的文件啊?我备份了一个4g的文件备份失败
我发现评论的那些域名都很牛
还行吧
有一个地方打错了。。
chomd +x backup.sh
应该是chmod +x backup.sh
感谢提醒
哈哈,国外服务器看来用起来还不错呀。
国内是不是连不上dropbox...
必须的
SSL评论测试
评论测试2
这个方法值得学习研究下 8)
百度云的飘过……几乎无限大
再来看看你,逗妇乳
蛋疼实验室路过
博主1W块域名出手吗?过了这村就没那店了。
我晕,这域名有这么值钱么
"运维笔记"的lnmp自带备份功能,然后再安装个byby按小时备份妥妥,可自定义备份文件失效
请谨慎。