(1)创建备份脚本文件,并编写备份脚本。名称改
touch backup.sh #创建脚本文件
chmod +x backup.sh #给脚本文件赋予执行权限
vi backup.sh
#!/bin/sh
SYSTEM_TIME=`date '+%Y-%m-%d'` #定义日期变量,取当前日期
mysqldump -h192.168.0.143 -P3306 -uroot -phht3306 --all-databases |gzip > /backup/backup$SYSTEM_TIME.sql.gz #先备份后打包
(2)crontab计划任务在规定时间执行此备份脚本
[root@test02 backup]# crontab -e #进入计划任务,crontab具体使用方法可以查看语法
10 0 * * * /bin/bash /backup/backup.sh #每天凌晨10分执行此备份脚本
(3)删除历史备份文件
在每天备份的过程中,数据备份文件会越来越多,会占用更多的硬盘空间,而时间很长的数据备份文件作用也不是很大,此时就存在怎么让系统每天自动删除N天前的备份文件的问题。
自动删除脚本可以跟自动备份脚本存放在一个执行文件中
if test -e /backup/
then
find /backup/backup*.sql.gz -mtime +3 -type f -exec rm -rf {} \; #删除三天之前的打包文件
先建一个脚本
[root@win7 /]# cd home/test
[root@win7 test]# touch test_database_backup.sh
[root@win7 test]# chmod 770 test_database_backup.sh
定时脚本
crontab -u //设定特定用户的定时服务
crontab -l //列出当前用户定时服务内容
crontab -r //删除当前用户的定时服务
crontab -e //编辑当前用户的定时服务
系统没有装crontab
安装和启动命令
yum install vixie-cron
yum install crontabs
service crond start
service crond stop
service crond status
1.在设定编辑之前都建议列出服务查看一下:crontab -l
2.然后编辑定时任务:crontab -e 进入编辑界面会显示已存在的定时任务
添加定时任务
3.前面五个*号代表
前面五位是定时执行的时间周期
第一个 * 表示分钟:取值范围 0-59
第二个 * 表示小时:取值范围0-23
第三个 * 表示天数:取值范围1-31
第四个 * 表示月份:取值范围1-12
第五个 * 表示每周:取值范围0-6
****1 备份脚本路径----每一周备份一次
4.添加完后service crond restart重启
查看是否生效tail -f /var/log/cron
5.定时删除旧的备份日志