在Linux环境上创建定时任务时,我们可以使用 crontab
来实现。下面就来简单讲讲如何使用。
crontab
crontab
的参数及书写格式如下:
Usage:
crontab [options] file
crontab [options]
crontab -n [hostname]Options:
-u <user> define user
-e edit user’s crontab
-l list user’s crontab
-r delete user’s crontab
-i prompt before deleting
-n <host> set host in cluster to run users’ crontabs
-c get host in cluster to run users’ crontabs
-s selinux context
-x <mask> enable debugging
注:上面这个是命令帮助,相信大家都能看懂我就不翻译了(主要是我实在是太懒了 /(ㄒoㄒ)/~~)
其中最常用的例子如下
1 | 列出当前用户已有的任务列表 |
下面来举一个给当前用户新加一个任务的例子:
待执行的任务脚本:task.sh
1 | !/bin/bash |
添加定时任务的脚本:addTask.sh
1 | !/bin/bash |
简单说一下crontab中的命令格式
例如(上面的 addTask.sh
脚本执行完的结果):
0-59 23 * * * /home/jeremysong/cron/task.sh > /dev/null 2>&1
上面的这个命令主要分为两部分,第一部分为运行周期的设定,第二部分则为执行的命令
基本语法有如下的定义:
* * * * * command
分 时 日 月 周 命令
- 第1列表示分钟1~59 每分钟用*或者 */1表示
- 第2列表示小时1~23(0表示0点)
- 第3列表示日期1~31
- 第4列表示月份1~12
- 第5列标识号星期0~6(0表示星期天)
- 第6列要运行的命令
上述的例子表示为:每天的23点,每隔1分钟执行一次
task.sh
任务没有立即生效的解决办法
- 首先确认添加任务是否成功,可以使用
crontab -l
的方式查看当前的任务列表 - 确认定时任务执行的
command
是可执行的 - 使用
/etc/init.d/cron reload
重新加载任务列表 - 最后实在不行,可以使用
/etc/init.d/cron restart
重启服务
另外,crontab
任务列表对应的文件为:
/var/spool/cron/tabs(注意:有的系统没有tabs这一层目录)
上述目录中存在的文件即为各个用户的 crontab
列表文件,例如:root、jeremysong
以上就是对 crontab
作的一些小总结。另外,crontab
的使用不仅局限与如此,配合其他参数还可以设定更加和你项目要求的定时任务。
最后
还是照旧,内容主要以科普内容为主。如果你对 crontab
不熟悉的话,不妨按照上面的过程自己动手试试。 (●ˇ∀ˇ●)
欢迎关注我的公众号 须弥零一,跟我一起学习IT知识。
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !