Linux使用Crontab MySql定时备份

来源:互联网 发布:智能手机自动开机软件 编辑:程序博客网 时间:2024/06/12 03:58

1、创建备份目录(就是备份的文件放在哪里已经shell脚本)

(shell脚本我放在这里)

mkdir /home/bak_sh  


(数据库备份文件放在这里)

mkdir /home/mysqlbackup    


2、创建备份Shell脚本:

cd  /home/bak_sh

vi mysqlbck.sh

输入:

backupdir=/home/mysqlbackup
time=_`date +%Y_%m_%d_%H_%M_%S`
db_name=test
db_user=root
db_pass=123456
mysqldump -u $db_user -p$db_pass --extended-insert=false $db_name | gzip > $backupdir/$db_name$time.sql.gz
find $backupdir -name $db_name"*.sql.gz" -type f -mtime +91 -exec rm -rf {} \; > /dev/null 2>&1

说明:

backupdir :备份文件要放的目录

time : 时间,文件名用到

db_name :要备份的数据库名

db_user:数据库用户名

db_pass :数据库用户密码

备份语句(备份并进行压缩):

mysqldump -u $db_user -p$db_pass --extended-insert=false $db_name | gzip > $backupdir/$db_name$time.sql.gz


删除超过3个月的所有备份数据(即删除3个月之前的备份,保留3个月内的备份,这个规则根据需求随意定);

find $backupdir -name $db_name"*.sql.gz" -type f -mtime +91 -exec rm -rf {} \; > /dev/null 2>&1


保存退出!(先按一下键盘上的 " esc " 然后输入 “:wq ” 表示保存


3、添加可执行权限

chmod +x /home/bak_sh/mysqlbck.sh  

(执行mysqlbck.sh测试备份脚本是否可用,如果可用,执行后会在/home/mysqlbackup目录下生成备份好的压缩文件,为确保备份内容正确,可查看压缩文件的内容是否是我们需要的


4、添加计划任务修改/etc/crontab

crontab -e

这时就像使用vi编辑器一样,可以对计划任务进行编辑

或者直接编辑 /etc/crontab


输入以下内容并保存:

0 3 * * * root /home/bak_sh/mysqlbck.sh

(表示:每天凌晨3点以root权限开始执行mysqlbck.sh脚本)

cron时间的格式是

分 时 日 月 周

保存退出!


5、重新启动crond

/etc/rc.d/init.d/crond restart

或者:

service crond restart


6、查看任务执行日志

# tail -f /var/log/cron


7、系统崩溃,重建系统时,可以这样恢复数据:

先解压压缩的备份文件
#mysql -u username -ppassword test< test_2016_12_07_09_54_34.sql.gz

从压缩文件直接恢复:

#gzip < test_2016_12_07_09_54_34.sql.gz | mysql -u username -ppassword test



0 0
原创粉丝点击