资讯专栏INFORMATION COLUMN

Linux下实现定时执行程序--crontab

sugarmo / 221人阅读

摘要:写在前面在下,用实现定时执行程序的功能。时程表的格式如下其中是表示分钟,表示小时,表示一个月份中的第几日,表示月份,表示一个星期中的第几天。表示要执行的程序。

写在前面

在Linux下,用crontab实现定时执行程序的功能。

正文

使用方式 :
crontab file [-u user]:用指定的文件替代目前的crontab。
crontab -[-u user]:用标准输入替代目前的crontab.
crontab -l[user]:列出用户目前的crontab.
crontab -e[user]:编辑用户目前的crontab.
crontab -d[user]:删除用户目前的crontab.
crontab -c dir:指定crontab的目录。

  

crontab文件的格式:M H D m d cmd.
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量

说明

crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定
user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设
定自己的时程表。

参数

crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数
来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
crontab -r : 删除目前的时程表
crontab -l : 列出目前的时程表
crontab file [-u user]-用指定的文件替代目前的crontab。

时程表的格式如下 :

  

f1 f2 f3 f4 f5 program
其中:f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。

例子 :
每天早上7点执行一次 /bin/ls :
0 7 * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"

  

注意 :
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可
或者你希望将信息打印到log中,则用> info.log 2>&1

例子2 :
每天早上6点10分
10 6 * * * date
每两个小时
0 */2 * * * date
晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
1月份日早上4点
0 4 1 jan * date

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15057.html

相关文章

  • Linux实现定时执行程序--crontab

    摘要:写在前面在下,用实现定时执行程序的功能。时程表的格式如下其中是表示分钟,表示小时,表示一个月份中的第几日,表示月份,表示一个星期中的第几天。表示要执行的程序。 写在前面 在Linux下,用crontab实现定时执行程序的功能。 正文 使用方式 : crontab file [-u user]:用指定的文件替代目前的crontab。 crontab -[-u user]:用标准输入...

    Vultr 评论0 收藏0
  • Linux crontab 访问PHP URL完成定时任务

    摘要:而我本人需要完成的任务是定时访问一个文件链接去生成,所以访问就不能用去完成,而是要用。本站的这篇下执行定时任务命令详解写的非常详细,建议看一下。 crontab -e 新建/编辑一个任务crontab -l 列出所有任务 crontab 格式: 基本格式 :分钟 小时 日 月 星期 命令第1列表示分钟1~59 每分钟用或者 /1表示第2列表示小时1~23(0表示0点...

    zhangyucha0 评论0 收藏0
  • Linux crontab 访问PHP URL完成定时任务

    摘要:而我本人需要完成的任务是定时访问一个文件链接去生成,所以访问就不能用去完成,而是要用。本站的这篇下执行定时任务命令详解写的非常详细,建议看一下。 crontab -e 新建/编辑一个任务crontab -l 列出所有任务 crontab 格式: 基本格式 :分钟 小时 日 月 星期 命令第1列表示分钟1~59 每分钟用或者 /1表示第2列表示小时1~23(0表示0点...

    QiuyueZhong 评论0 收藏0
  • Linux crontab 访问PHP URL完成定时任务

    摘要:而我本人需要完成的任务是定时访问一个文件链接去生成,所以访问就不能用去完成,而是要用。本站的这篇下执行定时任务命令详解写的非常详细,建议看一下。 crontab -e 新建/编辑一个任务crontab -l 列出所有任务 crontab 格式: 基本格式 :分钟 小时 日 月 星期 命令第1列表示分钟1~59 每分钟用或者 /1表示第2列表示小时1~23(0表示0点...

    Wildcard 评论0 收藏0
  • 那些年,我们追过的“定时调度”

    摘要:类是一个抽象类,由安排为一次执行或重复执行的任务。也是自带的一个基于线程池设计的定时任务类。问题,则可以直接使用类实现自定义的定时调度规则。 定时调度作为后端开发人员,我们总会遇到这样的业务场景:每周同步一批数据;每半个小时检查一遍服务器运行状况;每天早上八点给用户发送一份包含今日待办事项的邮件,等等。 这些场景中都离不开定时器,就像一个定好时间规则的闹钟,它会在指定时间触发,执行我们...

    The question 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<