ubuntu 下使用crontab自动执行命令
环境 ubuntu 16.04
一.添加任务
crontab -e
输入一行命令,用于每一分钟向a.txt里面增加一行文字"a"
* * * * * echo a >> /a.txt
crontab文件的基本格式如下所示
* * * * * command
分 时 天 月 周 命令
crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。
前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:
分钟 0 - 59
小时 0 - 23
天 1 - 31
月 1 - 12
星期 0 - 6 0表示星期天
* (星号) 表示任意值,比如在小时部分填写 * 代表任意小时(每小时)
,(逗号) 可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟
/(斜线) 一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 /2 代表每隔两分钟。所以 /1 和 * 没有区别
2:crontab例子
(1)30 20 * * * date >> /home/date.log //每天的20:30将日期信息追加home目录下的date.log中
(2)5 20 13,14 * * date >> /home/date.log //每月的13日,14日20:5分将日期信息最追加home目录下的date.log中
(3)0,10 10,12 * * * date >> /home/date.log //每天10点至12点之间,隔10分钟将日期信息最追加home目录下的date.log中
(4)/5 * * * date >> /home/date.log //每5分钟将日期信息最追加home目录下的date.log中
3:crontab是UNIX系统下定期执行任务的触发器。用户把要定期执行的任务记录在这个文件下面,然后crond定期的去检查这个定期执行列表,有要执行的工作时便自动执行。
通过man crontab可以查看到下面的信息
(1)/etc/crond.allow 表示的是允许使用crontab的用户列表
(2)/etc/crond.deny 表示的是不允许使用crontab的用户列表
4: crontab常用的几个命令格式
crontab -l //显示用户的crontab文件的内容
crontab -e //编辑用户的crontab文件的内容
crontab -r //删除用户的crontab文件
二.开启
service cron start
三.查看命令是否被执行
[email protected]:~# service cron status
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-01-11 20:00:54 CST; 8 months 20 days ago
Docs: man:cron(8)
Main PID: 400 (cron)
CGroup: /system.slice/cron.service
└─400 /usr/sbin/cron -f
Oct 02 19:26:01 iZbp1hbl3ph8t8w8qkcbcdZ CRON[19327]: (root) CMD (echo a >> /a.txt)
Oct 02 19:28:01 iZbp1hbl3ph8t8w8qkcbcdZ CRON[19395]: pam_unix(cron:session): session opened for user root by (uid=0)
Oct 02 19:28:01 iZbp1hbl3ph8t8w8qkcbcdZ CRON[19396]: (root) CMD (echo a >> /a.txt)
Oct 02 19:29:01 iZbp1hbl3ph8t8w8qkcbcdZ CRON[19414]: pam_unix(cron:session): session opened for user root by (uid=0)
Oct 02 19:29:01 iZbp1hbl3ph8t8w8qkcbcdZ CRON[19415]: (root) CMD (echo a >> /a.txt)
Oct 02 19:30:01 iZbp1hbl3ph8t8w8qkcbcdZ CRON[19462]: pam_unix(cron:session): session opened for user root by (uid=0)
Oct 02 19:30:01 iZbp1hbl3ph8t8w8qkcbcdZ CRON[19463]: (root) CMD (echo a >> /a.txt)
Oct 02 19:31:01 iZbp1hbl3ph8t8w8qkcbcdZ CRON[19476]: pam_unix(cron:session): session opened for user root by (uid=0)
Oct 02 19:31:01 iZbp1hbl3ph8t8w8qkcbcdZ CRON[19477]: (root) CMD (echo a >> /a.txt)
Oct 02 19:31:19 iZbp1hbl3ph8t8w8qkcbcdZ systemd[1]: Started Regular background program processing daemon.
[email protected]:~# ps -ef | grep cron
root 400 1 0 Jan11 ? 00:00:50 /usr/sbin/cron -f
root 19418 19302 0 19:29 pts/1 00:00:00 grep --color=auto cron
refer to
https://blog.****.net/katyusha1/article/details/78619549