注意:在逗号后面不要加空格,空格表示隔开不同的字段 。
表示一个时间间隔,而不是指定具体的时间 。例如,把小时指定为 */2,表示每间隔两小时执行一次该任务 。
在第一个 % 之前的内容会传递给 shell 来执行,这个 % 自身会被替换成换行符,在 % 之后、直到行末的内容都作为标准输入传递 。
如果需要提供 % 字符自身,需要用 % 进行转义 。
cron 守护进程如何执行定时任务在 man 5 crontab 的说明中,有如下内容:
Several environment variables are set up automatically by the cron(8) daemon. SHELL is set to /bin/sh, and LOGNAME and HOME are set from the /etc/passwd line of the crontab's owner. PATH is set to "/usr/bin:/bin". HOME, SHELL, and PATH may be overridden by settings in the crontab;
An alternative for setting up the commands path is using the fact that many shells will treat the tilde(~) as substitution of $HOME, so if you use bash for your tasks you can use this:
SHELL=/bin/bashPATH=~/bin:/usr/bin/:/bin即,cron 守护进程默认使用 /bin/sh 这个 shell 来执行 crontab 文件指定的命令 。如果想要用 bash 来执行,可以 crontab 文件中添加 SHELL=/bin/bash 这一行 。
默认的寻址路径是 "/usr/bin:/bin",如果需要执行的命令、或者脚本文件没有放在这两个路径下,就需要通过文件路径来指定,建议使用绝对路径 。
由于定时任务是由 cron 守护进程来执行,需要确认该进程已经启动,才能执行定时任务,可以使用下面命令来确认 cron 守护进程是否已经启动:
$ service --status-all |& grep cron [ + ]cron$ ps -e | grep cron 2340 ?00:00:36 cron在 service --status-all |& grep cron 命令中,看到 cron 前面显示加号 +,表示 cron 守护进程已经启动 。在 ps -e | grep cron 命令中,要能查找到 cron 这个名称,说明 cron 这个进程正在运行 。
设置定时任务的实例我们在使用 crontab -e 命令打开 crontab 文件后,可以输入下面的一行:
*/5 ****date >> ~/testcron.txt基于前面的说明,第一个 */5 表示每间隔 5 分钟就执行一次,后面四个 * 表示在每个月的每一天的每一个小时都执行该任务 。具体执行的命令是 date >> ~/testcron.txt,把执行任务时的时间追加写入到 testcron.txt 文件 。
即,这个定时任务每天都会运行,每间隔 5 分钟就运行一次 。可以通过查看 testcron.txt 文件来确认是否执行过该任务 。
保存文件之后,再过 5 分钟,查看 testcron.txt 文件内容如下:
$ lstestcron.txt$ cat testcron.txt2019年 12月 03日 星期二 14:20:01 CST可以看到,在指定目录下生成了 testcron.txt 文件,且该文件内容就是 date 命令打印的日期,说明执行过指定的定时任务 。隔了较长时间后,再查看 testcron.txt 文件内容如下:
$ cat testcron.txt2019年 12月 03日 星期二 14:20:01 CST2019年 12月 03日 星期二 14:25:01 CST2019年 12月 03日 星期二 14:30:01 CST可以看到,确实是每隔 5 分钟就写入一次日期到 testcron.txt 文件 。查看定时任务内容在 crontab 命令中,可以使用 -l 选项来查看 crontab 文件内容,从而看到里面包含的各个定时任务 。
查看 man crontab 对 -l 选项的说明如下:
The -l option causes the current crontab to be displayed on standard output.这个文件会打印整个 crontab 文件内容,包含注释语句 。部分内容列举如下:
# m hdom mon dowcommand*/5 ****date >> ~/testcron.txt其实直接执行 crontab -e 命令也能看到 crontab 文件内容,只是看完之后需要退出编辑器,没有 crontab -l 命令方便 。删除定时任务如果要删除某个定时任务,执行 crontab -e 命令,从 crontab 文件删除对应定时任务所在的行,保存文件即可 。也可以注释对应的行,以便后续需要的时候,再打开注释 。
如果要删除所有定时任务,可以使用 -r 选项 。查看 man crontab 对 -r 选项的说明如下:
The -r option causes the current crontab to be removed.即,-r 选项会删除当前用户的 crontab 文件,从而删除所有定时任务 。
【Linux技巧:介绍设置定时周期执行任务的方法】
推荐阅读
- linux awk使用方法
- Linux中10大常用命令之sort使用案例
- 你对Linux文件的色码知多少?
- ps动画插件Animator Photoshop汉化版功能介绍
- 淘宝客如何做推广 做好淘宝客推广的技巧有哪些?
- 淘宝店铺简介和店铺介绍怎么写案例 淘宝店铺的店铺简介应该怎么写
- 贡菊花介绍贡菊花茶介绍,枸杞菊花茶用量
- 淘宝直通车怎么推广宝贝 淘宝直通车推广技巧有哪些?
- 以淘宝为例介绍网上开店的基本流程 免费淘宝店怎么开流程
- 淘宝网店运营的主要方法 淘宝开店怎么运营有什么技巧
