菜单

linux下Vps自动备份web和mysql数据库的脚本,Linux服务器使用tar与cron定期备份数据

2019年8月2日 - 4166m金沙

有一次很不小心地删除了一个/etc/下的系统配置文件,很是吓了一跳!我是不太习惯在bashrc中设置alias
rm=’rm
-i’的,因为那样删除的东西多的时候会很烦人。虽然rm删除文件只是删除一个入口,文件仍然处于磁盘上,在被其他数据覆盖之前是可以找回来的,但是俗话说“防患于未燃”,不是更好吗?

用Vps什么事都要自己费心,备份也是。像Linode里的备份服务是要收费的,一个月是5美元。与其花这5美元,不如自己丰衣足食。为服务安装上了Dropbox,设定为每天4:00-6:00
开启同步服务。在之前运行两个脚本,自动备份web文件夹和mysql数据库。
两个脚本都是备份文件到/root/Dropbox/backup目录里,并自动删除10天前的备份。web备份是每周行一次,删除30天前的备份。

一、安装Email发送程序

其实我也是很少有备份的习惯的,过去也有过删错东西的时候,也不知道怎么的这次就想起来了,其实过去自己总结学习RHCE还是挺有用的,自己总结过的东西毕竟印象深得多。现在要用了,觉得很自然地想到了cron进行周期性地备份。

一、备份WEB文件夹
1、备份/home/users/public_html目录
2、修改crontab为每周第一天3:22时运行

虽然Linux上也有一些很庞大很复杂的备份程序,不过感觉上,tar+cron对我来说已经很足够了。有人说Unix能力就是组合使用工具的能力,感觉不无道理的,在Unix的世界里,数不清的小工具,随你信手去用,只有你想不到的,没有你做不到的。

复制代码 代码如下:

复制代码 代码如下:

以下的脚本基于GNU 的tar和cron,使用差异备份(differential
backup)的方法备份/etc/中的所有数据。每周日一次完整备份,完整备份前会删除目录中的所有备份以节约空间;每周其余各天实行差异备份,被刺差异备份前会删除前次差异备份。

22 3 * * 0 root run-parts /etc/cron.weekly

yum install sendmail mutt

这个脚本自然是可以继续更加完善的,比如留出之前的N个备份,每一次完整备份和基于它的差异备份分别放在各个文件夹中等,但这里没有这么做了。注释中有部分英文,也就是因为但是用了英文而已。用了大量的变量,只是为了修改起来方便,比如要备份的位置,备份时间,文件名等等,使用变量存储就是为了如果需要修改的话,不会牵扯到脚本主体。

3、复制脚本到/etc/cron.weekly目录
4、修改权限

二、安装FTP客户端程序

要使用它,可以将这个脚本放在任意位置,然后在crontab中引用它。注意,必须以root权限运行脚本,因为待备份的目录中可能出现需要root权限才能查看的文件。例如,我将这个脚本命令为backup.sh,放在~/bin/中,所以我可以在crontab中添加如下内容:

复制代码 代码如下:

本脚本需要用到FTP客户端程序将文件上传到FTP空间上面,因此必须安装FTP客户端,否则将出现ftp命令无法找到的错误。
安装步骤请参考:《CentOS提示ftp:command not
found》

20 13 * * * root /home/kimia/bin/backup.sh
 
以下是脚本文件:backup.sh

chmod 0755 /etc/cron.weekly/webbackup.sh

三、在/root目录下新建脚本文件:AutoBackupToFtp.sh,内容如下:

#!/bin/bash

5、脚本如下

复制代码 代码如下:

#use this bash script to backup /etc every week
#you can add other location after it begin with a space
targets=”/etc/”

复制代码 代码如下:

#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root                 #mysql用户名
MYSQL_PASS=123456               #mysql密码
MAIL_TO=xxxxx@gmail.com         #数据库发送到的邮箱
FTP_USER=ftpuser                #ftp用户名
FTP_PASS=ftpuserpassword        #ftp密码
FTP_IP=xxx.xxx.xxx.xxx          #ftp地址
FTP_backup=backup              
#ftp上存放备份文件的目录,这个要自己得ftp上面建的
WEB_DATA=/home/wwwroot         
#要备份的网站数据,如果是使用lnmp安装包,则默认这个为网站目录
#你要修改的地方从这里结束

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图