crontab -让服务器执行定时任务

这一生的挚爱 提交于 2020-04-18 04:10:50

1、启动服务

  一般启动服务用 "/sbin/service crond start"就可以了,如果是root用户就是 "sudo service crond start"。如果是想开机启动那么就是用"chkconfig crond on"即可。

2、查看运行状态

  可以通过查看进程" ps -ax | grep cron ",可以通过查看服务状态"service crond status"。

3、查看现有的定时任务

  通过命令 "crontab -l"可以查看现有的定时任务。

4、进入编辑状态

  运行" crontab -e",进入编辑状态,比如

#get ssl cert
0 0 1 * * /etc/nginx/ssl/getcert.sh >> /etc/nginx/ssl/get.log

  然后按"ESC"键,输入"wq"保存并退出即可,跟vim的编辑一样。保存后可以用 "crontab -l"看看是否添加成功。

5、格式说明

  可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件,具体的格式是
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
比如

5 * * * * ps       #表示每小时的第5分钟执行一次ps命令  
5 5 * * * ps      #表示每天的5时5分执行一次ps命令  
5 5 5 * * ps      #表示每月的5号5时5分执行一次ps命令  
5 5 5 5 * ps     #表示每年的5月5号5时5分执行一次ps命令  
5 5  * * 5 ps     #表示每周5的5时5分执行一次ps命令  0表示星期天,1表示星期1

6、一些特殊字符

记住几个特殊符号的含义:
“*”代表取值范围内的数字
“/”代表”每”
“-”代表从某个数字到某个数字
“,”分开几个离散的数字
比如

* /5 * * * * ps    #表示每隔5分钟执行一次ps命令  
* */5 * * * ps    #表示每隔5小时执行一次ps命令  
5 */5 * * * ps    #表示每隔5小时的第5分钟执行一次ps命令  
5 5-10 * * * ps    #表示每天的5-10小时中的第5分钟执行一次ps命令  
5 5,10 * * * ps    #表示每天的5和10小时中的第5分钟执行一次ps命令 

7、一点技巧

执行命令的时候一般都需要保存日志来看看是否真的执行,所以在命令中用到">> /home/ps.log"这样的方式来保存执行的日志。
比如说 " */5 * * * * ps >> /home/ps.log "表示每隔5分钟执行一次ps命令 ,然后把输出的结果保存到了/home/ps.log 文件中

8、crontab的命令参数

  • crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
  • crontab -l //列出某个用户cron服务的详细内容
  • crontab -r //删除没个用户的cron服务
  • crontab -e //编辑某个用户的cron服务
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!