liunx mysql数据库每天定时自动备份数据
创建一个shell文件,把如下代码放入创建的shell文件中并保存
1、sh脚本
#备份文件后缀时间
time=‘date +%Y%m%d%H’;
#备份路径和备份的数据库
#把 root替换为实际的用户名;
#把 dreamsoft替换为实际的密码;
#把 dsfa_zjstxnew替换为实际的数据库名;
#备份目录:/data/database-sjk-bf
#备份文件名称:dsfa_zjstxnew_KaTeX parse error: Expected group after '_' at position 100: …f/dsfa_zjstxnew_̲time.sql.gz
#mysqldump -uroot -pdreamsoft dsfa_zjstxnew | gzip > /data/database-sjk-bf/dsfa_zjstxnew_$(date +%Y%m%d_%H%M%S).sql.gz
#删除七天之前的备份文件
#备份文件存储目录:/data/database-sjk-bf
#备份文件名:dsfa_zjstxnew_.sql.gz
find /data/database-sjk-bf -name "dsfa_zjstxnew_.sql.gz" -type f -mtime +7 -exec rm -rf {} ; > /dev/null 2>&1
#删除五分钟之前的备份文件
#find /data/database-sjk-bf -name “zjstxnew_*.sql.gz” -type f -mmin +5 -exec rm -rf {} ; > /dev/null 2>&1
脚本弄好后执行看是否有问题,没问题后再设置每天自动备份
2、设置每天自动执行sh脚本
编辑crontab 添加定时任务
#vi /etc/crontab
在最后一行中加入:
00 2 * * * /usr/local/mysqlbackup/backmysql.sh
表示每天凌晨2点00分执行sh文件
crontab配置文件日期格式如下:
分 时 日 月 周
3、重启crontab,命令如下
/bin/systemctl status crond.service