通过mysqldump命令保留数据库的结构和数据sql语句。
通过crontab的创建定时任务,定期的循环备份。
1、创建A.sh文件文件的内容如下:
#将数据库备份并压缩的命令
mysqldump -u你的数据库用户名 -p数据库密码 数据库名称 | gzip > 备份保存的路径/文件名字_$(date +%Y%m%d_%H%M%S).sql.gz
#循环删除离现在比较远的文件(这里表示7天前的删除)
find 备份保存的路径 -name "*.sql.gz" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1
2、用crontab将上面的A.sh文件进行定时的执行,比如每天凌晨1点进行备份。
2.1安装crontab
yum -y install vixie-cron
2.2添加定时任务
1)输入crontab-e回车,情形如图:
2)按键盘上的a进入编辑模式(这时候最下面显示-- INSERT –
不然你是写不进去的)。
0 1 * * * /root/con_waste_backup/backup.sh
3)按esc,此时-- INSERT --消失。然后在屏幕上敲出来:wq并回车,此时你的crontab任务就创建了。
你可以用命令crontab-l
查看。
4)启动crontab服务
大功告成了,你可以将上面的0 1 * * *
改为/ 1 * * *
即1分中执行一次先试试。
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
o minute: 区间为 0 – 59
o hour: 区间为0 – 23
o day-of-month: 区间为0 – 31
o month: 区间为1 – 12. 1 是1月. 12是12月.
o Day-of-week: 区间为0 – 7. 周日可以是0或7
eg:
0 1 * * *#每天的凌晨一点
1 1 * * *#每天的凌晨一点过一分钟
1 1 1 * *#每月1号的凌晨一点过一分钟
1 1 * * 1#每个周末的凌晨一点过一分钟
其他语法:
crontab-e#添加任务
crontab-l#列出所有任务
crontab-r#清除任务
service crond start #启动crontab服务
service crond stop#关闭crontab服务
注意
如果你发现crontab服务服务已经启动了,但是并没有发现自己的sql语句被写在了相应的文件夹,此时你可以修改下crontab的权限,可能你对目标文件夹没有写入权限。
chmod -R 777 sh文件所在路径。
linux权限讲解