LINUX下自动导出数据库.sql文件/备份网站

最近接触了独立服务器,遇到一系列问题,CENTOS系统都装了好几遍,似乎终于OK了。针对其中的遇到的问题做一个笔记和总结及分享,也是以便日后查阅。

1,在目录/home/backup下建立文件backup.sh后,执行 chmod +x /home/backup/backup.sh ,意思是赋其执行权限,backup.sh的内容如下:

#!/bin/sh

date=`date +”%Y%m%d”`
#获取日期,将其作为压缩包后缀,以便识别。

rm -f /home/backup/filename_`date -d ‘-60 days’ +%Y%m%d`.zip
#删除60天前的备份的压缩包,可见服务器上将有60个每日备份包。

/usr/local/mysql/bin/mysqldump –opt -uroot -pPASSWORD DBNAME > /home/wwwroot/sqlfilename.sql
#使用mysqldump命令执行导出.sql,注意-uroot中root是数据库登录名(中间没有空格),-pPASSWORD中-p是参数,PASSWORD是密码。
#DBNAME是数据库名,将导出sqlfilename.sql存放到/home/wwwroot目录下。

zip -r /home/backup/filename_$date.zip /home/wwwroot/website /home/wwwroot/sqlfilename.sql
#zip命令将 [网站目录website和sqlfilename.sql] 打包,并存放到/home/backup目录下。

2,添加自动备份规则

A. 运行 crontab -e 命令,将会打开一个文件,此时相当于是用vi打开了一个文件。
vi操作需要先敲击i,进入编辑状态:
10 23 * * * /home/backup/backup.sh 粘贴进去。
接着按ESC键,敲击:wq,回车保存退出。

B. 解释一下 10 23 * * *的意思:每天的23点10分运行backup.sh脚本,如果想每天中午11:30呢,那么便是 30 11 * * * 。
可见它的规则是crontab文件的格式:M H D m d.
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。

C. 必要时需要执行以下来重启crond服务:

/etc/init.d/cron stop
/etc/init.d/cron start

或者是

service crond start #启动服务
service crond stop #关闭服务
service crond restart #重启服务

3,如果是centos系统,默认是没有zip, crontab 软件的,所以要提前安装它们。

yum install zip #安装zip

yum install vixie-cron #安装cron主文件
yum install crontabs #安装次文件

chkconfig –level 35 crond on #执行此命令,以便系统重启自动开启cron

总结:以上只是将mysql的数据库导出,并和网站文件一起压缩,存放在服务器的某个目录下。并没有实现异地(传到其它服务器上)。还需要继续扩展backup.sh即可。

进一步学习可以参考:http://www.laozuo.org/?s=%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BD

发表回复

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