如何在Linux主机上定时运行某条命令或者程序以及注意事项


最近我的新加坡主机总是要求google验证,不知道咋回事,我发现定时重启v2ray似乎可以降低验证频率,我决定让我的v2ray每天重启一次,于是我就学习了一下linux上的定时命令。Linux上定时任务类似于Windows的计划任务。corntab命令就是用来设置定时任务的。

工作原理

它的工作原理就是这个程序分钟检查配置文件中的任务,如果有需要执行的任务那么它就会在设定的时间执行对应的命令。

配置文件

/var/spool/cron/crontabs
这个存放用户的配置文件,这个文件夹可能是空的但是我经过编辑之后可以看到root用户的一个文件内容如下


/etc/cron.d/
这个中存放着一部分需要执行的脚本,目测都是一些系统级别的定时任务才放

简单的使用

本文只是简单介绍一下如何使用所以只说简单实用的方式

编辑当前用户的crontab配置

crontab -e

这个命令会打开当前用户的crontab配置文件(如果没有就会创建一个新的文件)

列出当前用户的计划任务列表

crontab -l

全部删除用户任务

crontab -r

编辑定时任务

命令基本形式

* * * * * 要执行的命令
----------------
| | | | |
| | | | ---- 周当中的某天 (0 - 7) (周日为 0 或 7)
| | | ------ 月份 (1 - 12)
| | -------- 一月当中的某天 (1 - 31)
| ---------- 小时 (0 - 23)
------------ 分钟 (0 - 59)

举例子

分钟

每一分钟执行(cmd代表执行的命令,每一行效果相同,下同)

* * * * * cmd
*/1 * * * * cmd

每3分钟执行

*/3 * * * * cmd

小时

每小时的第15分钟执行

15 * * * * cmd

13-15点每小时执行

0 13-15 * * * cmd

8点和10点各执行一次

0 8,10 * * * cmd

每天5点执行

0 5 * * * cmd

每隔一天执行

0 0 */2 * * cmd

每月15号执行

0 0 15 * * cmd

每周一执行

1 1 * * 1 cmd

每周日执行

1 1 * * 1 cmd

每两周执行

1 1 * * */2 cmd

每月一号执行

0 0 1 * * cmd

每两个月执行

0 0 1 */2 * cmd

每年二月执行

0 0 1 2 * cmd

注意事项

如果在某个周期内执行一次那么周期内的单位不应该保持‘*’应该指定具体时间否则会导致按照小单位执行

比如

你想写每周一执行

1 1 * * 1 cmd

若写成了* 1 * * 1则表示每周一的每分钟执行一次

若写成了0 * * * 1则表示每周一的每小时执行一次


文章作者: Cyber-Peng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-ND 4.0 许可协议。转载请注明来源 Cyber-Peng !
 上一篇
关于博客内容创作和博客部署技术结构的思考 关于博客内容创作和博客部署技术结构的思考
前一段时间将自己的博客转移到了hexo上面,之前的博客是Jpress搭建的,Jpress还是有一定的好处就比如可以开发一些插件来增加各种功能,甚至自动运营公众号,不过缺点也很明显由于博客内容保存在数据库中,而图片保存在一个附件文件夹里面,这
2020-02-20
下一篇 
Hexo博客访问速度太慢?部署到OSS上面提高访问速度 Hexo博客访问速度太慢?部署到OSS上面提高访问速度
使用阿里云OSS部署静态博客并且开启CDN加速和HTTPS访问以前为了写博客买了一个阿里云学生机,在上面部署了一个Jpress博客。之后发现这个博客占用了较大资源,由于使用数据库啥的对于将来文章转移啥的也不是很方便,还有这台机器做科学上网的
2020-02-14
  目录