Crontab定时任务

  • Post author:
  • Post category:其他




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



版权声明:本文为xiaobai663原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。