分享个自动备份到Dropbox的脚本

2014-01-19 01:58:42 +08:00
 funcman
上次host700跑路,丢了一周的客户网站数据,就因为备份脚本是手工启动的。
host700跑路后,之前的备份脚本跟着主机一起消失了,只好重新写一份

=================

脚本在
https://github.com/funcman/vps_backup_shell

使用这个脚本
首先你需要有这个
https://github.com/andreafabrizi/Dropbox-Uploader
按照说明把那个dropbox_uploader.sh丢到比如“~/”目录下
然后随便传个东西到你的Dropbox上,怎么做看他的说明,这样就能把你的VPS和你的Dropbox进行绑定。

你还需要装上7z,7z的命令行操作方式比tar差很多啊

然后把我的脚本和dropbox_uploader.sh放在同一级目录下。

之后,你要写个工作脚本给cron调用,虽然直接让cron调用我的脚本也可以。
你的脚本里可以做一些导出数据库到sql文件的操作。

我的工作脚本:

#!/bin/bash

BASEPATH=$(cd `dirname $0`; pwd)

DBPATH=/tmp/datebase`date +%Y%m%d`

mkdir -p $DBPATH
mysqldump -umyname -pmypwd -hlocalhost mydb > $DBPATH/mydb.sql

$BASEPATH/backup.sh -D"$DBPATH" -fmydb -d7
$BASEPATH/backup.sh -D/var/www -fmysite -d7

rm -rf $DBPATH

-D是需要备份的目录路径,-f是打包时用的名字,-d表示在Dropbox上存最近几天的备份包(超出范围的会被删除)。
后面两个参数可以不填,那么备份包会以目录名为文件名,并且一直存在。

注意,使用时把路径都写成完整路径。

在/etc/crontab填写工作脚本的调用表,一天调用一次即可。

第一次正儿八经写bash脚本,见笑了。
1195 次点击
所在节点    VPS
28 条回复
funcman
2014-01-21 17:34:03 +08:00
你看一下CentOS中7z在那个bin目录下,cron的PATH有没有包含那个目录

另外,把crontab里的那个HOME从/改为/root
估计就能找到dropbox_uploader.sh了。

cron的环境变量真是个坑啊。试试吧,应该就是环境变量的问题。
funcman
2014-01-21 17:34:28 +08:00
@sdzbzyc 忘记at你
funcman
2014-01-21 17:35:36 +08:00
回头得弄几个主流系统测试一下。
sdzbzyc
2014-01-21 21:12:04 +08:00
@funcman
下午突然就上不去网了...还以为我网络的问题 原来DNS被污染..

HOME改了后,dropbox_uploader.sh找到了
找了一下7z是在/usr/loacl/bin,PATH里加入后 还是..
/root/backup.sh: line 28: 7z: command not found
> No such file or directory: /tmp/backup20140121/20140121.mydb.7z
/root/backup.sh: line 28: 7z: command not found
> No such file or directory: /tmp/backup20140121/20140121.kcado.7z
难道没找对吗,我是用locate 7z
funcman
2014-01-21 21:50:13 +08:00
@sdzbzyc cron的PATH么?
sdzbzyc
2014-01-21 22:06:55 +08:00
@funcman
可以了..cron能自动执行了 刚才是我粗心把PATH写错了..local 敲成loacl了.. 是环境变量的问题
谢谢,感谢已发送:)
funcman
2014-01-22 01:33:20 +08:00
@sdzbzyc 祝贺!
XXOO
2014-02-12 16:59:58 +08:00
加上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/97561

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX