欢迎来到博达网站群学习网!
设为首页 | 加入收藏
当前位置: 首页 >> 知识库 >> 部署类 >> 操作系统 >> 正文

Linux下定时备份数据库和相关网站文件

发布时间:2016-08-03    浏览次数:

 

现象

网站图片信息和数据库信息,更新频率较快,需要定时对其备份。

原因

网站数据安全性需要保证;因各种原因数据丢失后可恢复到最近一次的备份时间点。

解决方法

1、首先确定需要备份的数据库库名和需要备份的目录名称。

2、确定备份时间点和频率,以及备份文件存放目录和备份文件的文件名称。

3、编写备份脚本。(根据个人需求可将备份文件目录和备份数据库写为2个脚本或合并写为一个脚本)

4、将备份脚本添加到计划任务。

例:

要备份的数据库名为:photo

要备份的图片目录名为:/opt/lampp/htdocs/photo/upload

数据库备份文件保存目录:/opt/backup/db

备份文件名称:photo-当天日期.tar.gz

图片备份文件保存目录:/opt/backup/img

备份文件名称:upload-当天日期.tar.gz

备份脚本存放目录:/opt/backup.sh

任务每天23:59执行一次

编写脚本backup.sh内容为:

#!/bin/sh

#mysql Info

SQL_host=localhost //数据库位置

SQL_User=root //连接数据库用户名

SQL_Passwd=*tpw56108* //数据库用户名密码

SQL_db=photo //备份数据库名称

backup_path=/opt/backup/db //数据库备份文件存放目录

file=$SQL_db-$(date +%Y%m%d).tar.gz //数据库备份文件命名规则

mysql_path=/opt/lampp/bin //指定mysql数据库的执行目录

#photo Info

photo_path=/opt/lampp/htdocs/photo //备份目录位置

photo_name=upload //备份目录名称

photo_back=/opt/backup/img //备份目录存放位置

photo_file=$photo_name-$(date +%Y%m%d).tar.gz //备份目录命名规则

cd $backup_path

#export database

$mysql_path/mysqldump -h $SQL_host -u$SQL_User -p$SQL_Passwd -B $SQL_db>$SQL_db.dump

sleep 5s

#file tar

tar -czf $backup_path/$file $SQL_db.dump

sleep 10s

rm -rf $backup_path/$SQL_db.dump

sleep 1s

cd $photo_path

tar zcvf $photo_back/$photo_file $photo_name/

脚本编写完成后,测试执行。确保脚本无误后,制定计划任务:

执行crontab –e

编写:

59 23 * * * /opt/backup.sh

保存

这样就制定了每天23:59分 执行/opt/backup.sh备份脚本的计划任务。

备注:

此次备份数据库为mysql,其他数据库可以使用相应的备份命令,或使用tar打包工具直接将数据文件打包。(打包恢复时必须要求数据库版本相同)

脚本文件在windows平台编写,上传至linux环境时 需执行“# dos2unix文件名” 命令转换格式,否则无法执行。