Ubuntu下crontab命令的用法
正文
cron是一个Linux下的后台进程,用来按期的执行一些任务。由于我用的是Ubuntu,因此这篇文章中的全部命令也只能保证在Ubuntu下有效,但其余系统应该也差很少。javascript
想要让cron执行你指定的任务,首先就要编辑crontab文件。crontab是一个文本文件,用来存放你要运行的命令。你能够如下命令html
- crontab -e
来打开你的用户所属的crontab文件。第一次用这个命令,会让你选择文本编辑器,我选的是vim。选定的编辑器也可使用java
- select-editor
命令来更改。这点命令行中已经有足够的提示,就很少说了。linux
打开后的crontab文件相似这种样子:git
- # m h dom mon dow command
- */2 * * * * date >> ~/time.log
第二行是我为了测试写的一个按期任务,它的意思是,每隔两分钟就执行 date >> ~/time.log 命令(记录当前时间到time.log文件)。你能够把它加入你的crontab中,而后保存退出。程序员
保存了crontab以后,咱们还须要重启cron来应用这个计划任务。使用如下命令:ubuntu
- sudo service cron restart
下面稍微解释下crontab中每行的含义。crontab中的每一行表明一个按期执行的任务,分为6个部分。前5个部分表示什么时候执行命令,最后一个部分表示执行的命令。每一个部分以空格分隔,除了最后一个部分(命令)能够在内部使用空格以外,其余部分都不能使用空格。前5个部分分别表明:分钟,小时,天,月,星期,每一个部分的取值范围以下:vim
分钟 0 - 59服务器
小时 0 - 23微信
天 1 - 31
月 1 - 12
星期 0 - 6 0表示星期天
除了这些固定值外,还能够配合星号(*),逗号(,),和斜线(/)来表示一些其余的含义:
星号 表示任意值,好比在小时部分填写 * 表明任意小时(每小时)
逗号 能够容许在一个部分中填写多个值,好比在分钟部分填写 1,3 表示一分钟或三分钟
斜线 通常配合 * 使用,表明每隔多长时间,好比在小时部分填写 */2 表明每隔两分钟。因此 */1 和 * 没有区别
*/2 能够当作是能被2整除的任意值。
如下是一些例子(省略了命令部分):
- * * * * * # 每隔一分钟执行一次任务
- 0 * * * * # 每小时的0点执行一次任务,好比6:00,10:00
- 6,10 * 2 * * # 每月2号,每小时的6分和10分执行一次任务
- */3,*/5 * * * * # 每隔3分钟或5分钟执行一次任务,好比10:03,10:05,10:06
以上就是在cron中加入计划任务的基本知识。由于cron中的任务基本就是执行命令行,因此固然也会有权限问题。以上例子中的任务就是以你当前登陆用户的权限执行的,若是你须要以root用户执行某个任务,能够在crontab前加上sudo。
- sudo crontab -e
顺带一提,crontab文件对每一个用户都是不一样的,因此刚才设置的按期看时间的任务,在这里是看不到的。由于咱们没有为root用户增长这样的计划任务。
再顺带一提,不喜欢命令行的童鞋能够去 Ubuntu软件中心 下一个 计划任务 程序。在软件中心中搜索 schedule 就能够搜到。它是一个GUI的程序,作的还蛮傻瓜化的。不过好像没办法设置成使用root用户运行任务。并且,对于要ssl到服务器上进行操做的童鞋来讲,命令行仍是最好(惟一)的工具。
由于我目前就用到这些知识,因此对cron也没有更多了解。想了解Ubuntu下的cron的童鞋,能够去看看Ubuntu官方的这篇 CronHowTo ,我的以为讲的仍是蛮详细的。
昵称:
退出
订阅评论
[Ctrl+Enter快捷键提交]
· Moto Z2 Force渲染图再爆:电池缩水22% 国行独享128GB版本
· 新书爆出“与董明珠不合”?格力创始人:他们乱解读
· 科技行业集体声援苹果:反对高通iPhone进口禁令
· 微软复兴计划已重回正轨 商务云年化营收接近200亿美圆目标
· 徐小平:创业伤你千百遍,你就当在蓝海里呛了口水吧
» 更多新闻...
· 程序员的工做、学习与绩效
· 软件开发为何很难
· 唱吧DevOps的落地,微服务CI/CD的范本技术解读
· 程序员,如何从平庸走向理想?