Debian VPS自动备份文件和数据库到另一台VPS方法
经常在一些论坛或者网站上看到有站长朋友哭诉一些因为VPS或者虚拟主机不稳定导致数据丢失的情况,常见的一般是评论数据丢失,严重的就是全部几个月甚至一年的数据库都消失了。这样的打击对于一个辛辛苦苦运营的草根站长是不可接受的。
数据无价,养成良好的备份习惯真的是非常重要。手动备份耗时又耗力,容易受到各种因素的影响而导致备份效果不好。本篇文章是“靠谱分享”博主的投稿,在Debian VPS上实现自动备份文件和数据库到另一台VPS方法,比较适合有多个VPS的站长。
网站备份的方法有很多,有直接利用软件工具来备份的,也有利用自动增量来备份的,备份方法不同,优缺点也会不同,大家可以根据自己的需要来决定:
-
2、主机备份搬家:VPS主机快速搬家方法:边打包边传输边解压,适合大中型论坛网站
-
3、备份软件工具:帝国备份王备份WordPress数据文件简单傻瓜化免费备份方案
Debian VPS自动备份文件和数据库到另一台VPS方法
前不久网站连续悲剧N次,我都实在不知道该怎么说了,直接一言以蔽之,笔者最近人品暴跌!然后就一直在琢磨怎么做网站备份,最好是自动的,不然每天手动备份会无聊死的。
经过参考很多方法后,最终算是琢磨出来了一种吧,下面把这种方法分享出来(笔者对vps啥的完全不懂,代码也基本看不懂,算是照着人家的做的,老鸟飘过吧,仅供和我一样菜的朋友参考啦):
1、参考了许多文章后,发现都是互相抄袭,反正我是没找到原创出处,最后找到了有用的东东就是修改crontab文件:
2、由于笔者始终不会vim,所以只能笨办法直接修改文件了,进入winscp,找到文件/etc/crontab,打开编辑,原来的代码应该是:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
3、可能不同的vps这个有细微的不同吧,大体是一致的,重点的就在
# m h dom mon dow user command
4、这行代码下面,这行代码其实就是写法,需要执行的代码就写在下面,它们个代表的意思如下:m=分;h=时;dom=日;mon=月;dow=周(0與7都代表星期日);user=用户名;command=需要执行的命令。其中:"*" (星號) 代表所有時間都接受;"," (逗點) 代表同一個分類可以有多個值;"-" (減號) 代表在這個時段內執行。(这样看比较抽象,下面有笔者的实例,看了就能自己修改了)
5、笔者准备在凌晨2:30的时候开始自动备份,所以这里的指令应该是: (具体执行的命令在下面解说)
30 2 * * * root [command]
1、这个命令是参考freehao123的一篇文章:www.freehao123.com/vps-banjia/,这篇文章本意是作为快速搬家,然后笔者把它用来作为备份命令了。
2、笔者的vps系统是debian6 32位,用了lnmp一键安装包,备份文件的命令是:
cd 网站文件所在目录 && tar czf - 网站文件名| ssh root@需要备份到的vps的ip tar xzf - -C 需要备份到的目录
3、备份数据库的命令是:
cd 网站数据库文件所在目录 && tar czf - 数据库文件名| ssh root@需要备份到的vps的ip tar xzf - -C 需要备份到的目录
4、下面以lnmp环境为例,笔者的命令是:
cd /home/wwwroot && tar czf - reliableshare| ssh root@ip隐藏 tar xzf - -C /home/wwwroot
cd /usr/local/mysql/var && tar czf - reliableshare| ssh root@ip隐藏 tar xzf - -C /usr/local/mysql/var
5、里面把ip隐藏修改为你需要备份到的vps的ip即可,其他的作为参考,需要透露了目录老鸟们不要来搞我的网站,纯公益教程啊。
由于上面的备份命令需要密码,所以如果只是上面两步的话,还不能成功,还需要设置ssh登录免密码,下面是笔者测试成功的步骤:
1、在本地主机生成密钥对(这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。)
ssh-keygen -t rsa
2、将公钥添加到远程主机的 authorized_keys 文件中。将文件上传到远程主机中(下面的ip替换为需要免密码登录的vps的ip)
scp ~/.ssh/id_rsa.pub root@ip:/root/
3、SSH到登陆到远程主机,将公钥追加到 authorized_keys 文件中
cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
4、重启服务
/etc/init.d/ssh restart
5、测试(下面的ip替换为需要免密码登录的vps的ip)
ssh root@ip
6、没有提示输入密码就成功了!
1、上面算是整个过程的思路,下面把这些思路整理起来,就能够实现:debian vps自动备份文件和数据库到另一台vps
2、用来备份的VPS主机我们称之为备份vps,正常使用的vps我们称之为目标vps。首先对备份vps进行ssh登录免密码(步骤三),成功之后修改目标vps的/etc/crontab文件(步骤一),其中需要执行的命令就是备份vps的命令(步骤二)。
3、/etc/crontab文件修改完成后的截图如下。(点击放大)
文章出自:靠谱分享 由部落编辑整理,版权归原作者所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
您或许对下面这些文章有兴趣: 本月吐槽辛苦排行榜
-
板凳
[回复] -
嗯。。
[回复] -
一直都是手动备份。。。
[回复] -
前排
[回复] -
这个备份还是挺好的!
[回复] -
签到2013-09-28 21:43:53
[回复] -
这个难度真大
[回复] -
qi,我又把域名绑定了。。有一个没被删。。www.littleworld.ga
[回复] -
签到,,,
[回复] -
嘿嘿,前段时间一直忙着学习没时间上网,呼呼,向奋斗在一线的草根站长们致敬!
[回复] -
[img]https://hechaocheng-cn.qiniudn.com/hao123.png[/img]
[img]https://hechaocheng-cn.qiniudn.com/hao123-1.png[/img]
没有备@案就是这结果
@qi,有*的帮忙验证下?[回复] -
增量备份比较好。
[回复]