Linux 定时任务详解
如果我们需要定时执行一些周期性重复性的任务,我们就会用到定时执行任务功能来帮我们自动执行每天、每周等周期性重复性的任务而不需要人为干预即可实现。
如果需要添加一个定时任务,以下任务可以进入定时任务编辑状态
crontab -e
定时任务格式:分时日月周
2 1 * * * aaa #代表每天 1:02 分执行 aaa 命令 */2 * * * aaa #代表每 2 分钟执行 aaa 命令 0 3 * * 0 command #每周日凌晨 3 点执行 0 3 1 */1 * command #每月的第一天凌晨 3 点执行
定时任务执行后会输出:
You have new mail in /var/spool/mail/root
执行结果会被发到 root 的邮件里,如果不想收到定时任务的信息
可以把输出重定向
2 1 * * * aaa > /dev/null 2>&1
OK,定时任务介绍完了,我们来写一个每天凌晨 3 点将 mysql 其中一个库导出到文件,并且以时间来命名的脚本吧!
脚本名称 bak.sh
#!/bin/bash #自动备份 roof 库,且把 7 天前的备份删除 tod=`date -d +%Y%m%d` /usr/local/mysql/bin/mysqldump roof > /root/roof.sql zip /root/$tod.zip /root/roof.sql rm -rf /root/roof.sql old=`date -d '-7 day' +%Y%m%d` if [ -f /root/$old.zip ] then rm -rf /root/$old.zip fi
然后我们给该脚本执行的权限
chmod u+x bak.sh
接下来我们去编辑定时任务
crontab -e 0 3 * * * /root/bak.sh > /dev/null 2>&1
这样我们的定时任务就设置好了,系统将在每天的凌晨 3 点将数据库自动备份,压缩