如何自动备份VPS上的数据  

常常备份你的数据,是每一位Blogger都必须注意的事情。使用VPS的各位Blogger更需要注意这一点。
VPS备份,方法有很多,在这里我只说最简单的也是最实用的一个。用脚本备份VPS的数据,然后用FTP传到另外一个服务器。全程都是自动化的。你只需要配置好两段脚本然后定时任务自动执行就可以了。
首先是备份你的网站数据。
写脚本之前,请先在你的VPS上安装lftp,以方便用FTP传到另外的服务器。安装方法很简单。
我用的是CentOS。SSH连接到VPS,然后命令行执行
yum -y install lftp
如果你用的是Ubuntu,可以直接执行
sudo apt-get install lftp
 
好了,下面就是在你的VPS上创建一个脚本文件。命令行执行
vi backup.sh
在打开的编辑器里输入
#!/bin/bash
tar zPcf /home/wwwroot/backup/backup_$(date +%Y%m%d).tar.gz /home/wwwroot/xxx.com
/usr/bin/lftp -u ftpuser,passwd ftp.com/backup -e "put /home/wwwroot/backup/backup_$(date +%Y%m%d).tar.gz;exit"
rm -r /home/wwwroot/backup/backup_$(date +%Y%m%d).tar.gz
 
我在/home/wwwroot/下创建了backup文件夹以临时存放我的备份数据。所以第一句命令的意思就是打包/home/wwwroot/blog.hebine.com这个文件夹并命名为backup_当天日期.tar.gz然后把打包的数据放到/home/wwwroot/backup/里。
 
显然第二句命令行就是要利用我们刚刚安装的ftp软件lftp将打包好的文件传到另外一台服务器以用作备份。-u后面是你另外一台服务器的FTP用户名和密码,把ftpuser,passwd替换成你自己的FTP用户名密码就可以了。后面的是你另外一台FTP的IP和要存放的路径。
 
第三句命令的意思就是在传到FTP之后删除你刚刚存放在/home/wwwroot/backup/里的打包文件,以释放少的可怜的VPS空间。当然如果你的VPS空间足够大的话,你也可以一直保存在/home/wwwroot/backup/里只需要定时清除一下就可以了。
 
好了,在创建的backup.sh文件里输入以上脚本后,按esc键然后输入:wq退出编辑并保存文件。这样一个备份脚本就写好了,你可以修改一下你杠杠创建的脚本的权限。然后执行一下看看能否执行成功。
chmod +x backup.sh
sh backup.sh
执行备份脚本的时间会视你网站文件的多少和大小而不定,如果你看着命令死在那了,等着就可以了。
最后如果命令执行完毕后,你可以根据报的错去修改你的命令行,或者去你另外一台FTP上查看是否有备份好的文件。
 
备份完网站文件,我们再来备份下数据库。命令行执行
vi dbbackup.sh
在打开的编辑器里输入
#!/bin/bash
/usr/local/mysql/bin/mysqldump -uuser -ppasswd databasename > /home/wwwroot/backup/date_$(date '+%Y%m%d').sql
/usr/bin/lftp -u ftpuser,passwd ftp.com/backup -e "put /home/wwwroot/backup/date_$(date +%Y%m%d).sql;exit"
rm -rf /home/wwwroot/backup/date_$(date +%Y%m%d).sql
 
第一句命令意思是用mysqldump导出名为databasename的数据库到/home/wwwroot/backup/文件夹并命名为date_日期.sql.-u后面是你的Mysql的用户名,-p后面的是Mysql密码,databasename是要备份的数据库名字,把这三个替换成你自己的。
 
第二句和上面备份网站文件的命令一样,用lftp传到另外一台服务器。第三句是删除刚备份的数据库文件。
 
同样修改权限并执行备份脚本看能否备份成功。
chmod +x dbbackup.sh
sh dbbackup.sh
 
如果一切检查没有问题了,就创建定时任务自动备份你的数据吧。输入命令
crontab -e
在打开的文件里输入定时任务。
 
56 23 * * * /root/dbbackup.sh
00 00 * * * /root/backup.sh
 
然后按esc键然后输入:wq退出编辑并保存文件。
 
好了,定时任务创建好了,每天23点56分备份执行dbbackup.sh备份数据库,每天0点执行backup.sh备份网站文件。

欢迎大佬支持本博客的发展 -- Donate --

本文链接:如何自动备份VPS上的数据

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
  1. 喜欢博主的主题

  2. 奔三了

  3. 服务器是不是没有免费的。很喜欢这个服务器

  4. 木有钱买vps

    话说,青岛软件开发是不是你微博的青软啊?嘿嘿

    • 不是,绝对不是
      你怎么会想到那,青岛软件开发不知道是谁的网站,带病毒

  5. 博主的主题很是简介,比较喜欢

  6. 博主过来支持啦

    • 你的名字不错,可惜网站打开被自动拦截
      提示有马,是你自己的还是被挂的

  1. 没有通告