Posts tagged Backup
使用 rsync 备份多台服务器
0今天对服务器备份的脚本进行了重构,把配置参数独立成文件,使用 PHP 代替不熟悉的 shell,理顺了思路,分享一下。
【环境】
一共3台服务器,server-1 和 server-2 是线上生产环境,backup-server 是专门用于备份的服务器。
【目的】
定期把 server-1 和 server-2 的 user 目录下的所有文件同步到 backup-server 的指定目录下。
【前提】
backup-server 上有一个用户 backup,他用 ssh-keygen 生成公钥,传到 server-1 和 server-2,这样 backup 用户登录这 2 台线上服务器时不再需要密码。
[backup@backup-server rsync]$ ssh-keygen -t rsa -b 1024
在 ~/.ssh/ 下生成 id_rsa 和 id_rsa.pub,分别是私钥和公钥。
把 id_rsa 重命名成 identity,chmod 600。
把 id_rsa.pub 复制到 server-1 的 /home/user/.ssh/ 目录下,把内容追加到 authorized_keys 文件中,注意此文件也要 chmod 600。
server-2 也如此操作。
之后,backup 用户可以随意 ssh user@server-1 和 ssh user@server-2,不会再问密码。
【功能列表】
* 根据配置文件的 serverName,生成 shell 命令
* 判断是否为唯一 rsync 进程,如果有正在执行的进程,则不执行任何操作
* 确认没有重复进程之后,执行 rsync 命令同步文件,并输出进度信息到 logs 目录
* php 的程序只输出 shell 命令,确认无误后用管道输出给 bash 来运行
【使用方法】
[backup@backup-server rsync]$ /usr/bin/php /home/backup/script/rsync/rsync_web.php server-1 | sh
【详情】
根据 server-1 这个关键字,找到对应的配置信息。
根据一些列规则,生成一串管道命令,输出如下所示:
rsync_process_num=$(ps ax | grep ‘rsync’ | grep -v ‘grep’ | grep ‘server-1′ | grep ‘bwlimit’ | wc -l) && test $rsync_process_num -lt 1 && /usr/bin/nohup /usr/bin/rsync –links –delete –recursive –itemize-changes –progress –exclude-from=/home/backup/script/rsync/conf/exclude.server-1.conf –bwlimit=110 user@server-1:/home/user/* /home/backup/server-1/home/user/ >> /home/backup/script/rsync/logs/rsync_web.server-1.log 2>&1 &
对比“功能列表”,可以看明白这一串命令都在干嘛。
【SVN】
具体的代码,我提交到了 googlecode,欢迎指正:http://leakon.googlecode.com/svn/trunk/server/script/rsync/
文件备份 在线备份 在线备份你的电脑
0备份这个话题,我有很多想说的。
我个人对数据安全非常敏感。刻盘通常都刻 2 份,自己数码相机拍的照片每隔 1 个月就要做一次全部备份。
我有个朋友,因为硬盘坏了,里面存放的所有的照片都找不回来了,不知道该用什么词来形容。
前几天我的博客打不开了,帐户被临时关闭。原因是我在服务器上存了 300 多 G 的文件备份。这个空间的特点就是不限存储容量,但使用协议上写了不允许用作文件备份。我当时没仔细看,今天就被惩罚了。
我跟那边的客服沟通后立即删除了这些备份,过了一会儿就恢复了。
我估计是因为备份文件占的空间太大,达到了警戒值,他们自动检测的程序发现了。我存了半年多的备份,时间是有些长。现在我计划只保存一个月的,应该在 100G 以内,不会再被他们发现。
后来我还看了看 Amazon Simple Storage Service (Amazon S3),这个是专门用来存储文件的付费服务,有点贵,暂不考虑。
有个问题是,服务器的文件好备份,自己电脑上的文档什么的,同步起来比较麻烦,尤其是当文件有变化时,没法做双向自动同步。
有没有简单而便宜的备份方式呢?答案是肯定的!

Backblaze 给个人电脑提供了在线备份服务。首先你需要下载一个 1.5M 的客户端并安装。Backblaze 自动通告所有新的和修改过的文件,自动地开始备份工作。数据的安全和隐私是非常重要的。
档案通过一个加密的 SSL 连接,直接向 backblaze 数据中心发送并储存。无论你的电脑在哪里:在家庭,工作场所,在网吧,或其他地方,只要你有一个Internet连接。
无论您身在何处,都可以通过网络浏览器方便地浏览恢复你的文件!找到一个Internet连接,登录到你的账户,得到任何档案,只要你想。任何时间,任何地点,完全免费。
如果有数以千计的照片,大量的音乐,和一大堆其它文件,不方便通过互联网取回,你可以使用联邦快递,也可以使用 DVD 碟片或一部新的外接 USB 硬盘承载你的整个档案。
Backblaze 好是好,唯一不足的,是 Backblaze 只提供了 15 天的试用。以后每月要支付5美元才能继续使用。
点击进入:Backblaze
他们的首页有个很夸张的视频,很有说服力。
不限容量,一个月 5 美元,我感觉还是负担的起,算起来一个月 30 块人民币左右。
少打一次车,可以避免珍贵数据丢失,感觉挺值的。
