Crontab定时任务
crontab在Linux主要用于周期定时任务管理。通常安装操作系统后,默认已启动crond服务。crontab可理解为cron_table,表示cron的任务列表。类似crontab的工具还有at和anacrontab,但具体使用场景不同。
Crontab定时任务
crontab在Linux主要用于周期定时任务管理。通常安装操作系统后,默认已启动crond服务。crontab可理解为cron_table,表示cron的任务列表。类似crontab的工具还有at和anacrontab,但具体使用场景不同。
安装命令:yum install crontabs
日常命令:
■ 启动服务:/sbin/service crond start / systemctl start crond
■ 关闭服务:/sbin/service crond stop / systemctl stop crond
■ 重启服务:/sbin/service crond restart / systemctl stop crond
■ 查看crontab服务状态:service crond status / systemctl status crond
■ 手动启动crontab服务:service crond start
快速创建crontab任务
1. 打开crontab任务编辑:crontab -e
2. 然后在最后一行添加以下内容
*****date >> /tmp/time.txt
3. 按ctrl+x 然后 按 y 再按回车键就可以了
上述的意思即每过一分钟就会往/tmp/time.txt写入当前时间
crontab语法
crontab [ -u user ] file
#或者
crontab [ -u user ] { -1 | -r | -e}
参数说明:
● -e : edit 执行文字编辑器来设定时程表,内定的文字编辑器是VI
● -r :remove 删除某用户的所有任务列表
● -l :list 显示某用户的所有任务列表
● -u:user 是指设定user的时程表,这个前提是必须是root权限才能指定他人的时程表。如果不使用的 -u user 的话 ,就是表示设定自己的时程表。
● -c dir :指定crontab的目录
● file[-u user]:用来指定的文件替代目前的crontab
时间格式如下:
f1 f2 f3 f4 f5 program
参数说明:
f1:分钟
f2:小时 范围0~23
f3:日
f4:月 范围1~12
f5:星期 范围0~7 0/7表示星期日
program:表示要执行的程序
高级用法:
1. 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
2. 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
3. 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
4. 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其馀类推
* * * * *
- - - - -
| | | | |
| | | | ±---- 星期中星期几 (0 - 6) (星期天 为0)
| | | ±--------- 月份 (1 - 12)
| | ±-------------- 一个月中的第几天 (1 - 31)
| ±------------------- 小时 (0 - 23)
±------------------------ 分钟 (0 - 59)
#每个工作日11.59分都进行备份作业
59 11 * * 1,2,3,4,5 /root/bin/backup.sh
59 11 * * 1-5 /root/bin/backup.sh
#每五分钟运行一次命令
/5 **** /root/bin/check-status.sh
#每个月的第一天1:10 p.m运行
10 13 1 * * /root....
#每天早上7点执行一次 /bin/ls
0 7 *** /bin/ls
#在12月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
6-12/3 * 12 * /user/...
#周一到周五每天下午 5:00 寄一封信给 jack@domain.name :
0 17 * * 1-5 mail -s "hi" jack@domain.name < /tmp/maildata
#晚上11点到早上7点之间,每隔一小时重启apache
0 23-7/1 * * /.../... restart
#每晚的21:30重启linux
30 21 * * * /etc/.. restart
启动cron进程的方法:
/etc/init.d/crond start
开机启动cron进程:
chkconfig --add crond
日志打开:
打开文件,在文件中找到cron.*,把前面的#去掉,保存退出
sudo vi /etc/rsyslog.d/50-default.conf
重启日志系统
sudo service rsyslog restart
查看日志
sudo tail -n 10 /var/log/cron.log
更多推荐
所有评论(0)