crontab命令解释

常用命令:

crontab [-u username] [-l|-e|-r]
选项与参数:
-u  :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;
-e  :编辑 crontab 的工作内容
-l  :查阅 crontab 的工作内容
-r  :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑
安装crontab:
yum install crontabs

服务操作说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //启动服务

查看crontab服务是否已设置为开机启动,执行命令:
ntsysv

加入开机自动启动:
chkconfig –level 35 crond on 

使用方法:

举例: 写一个每隔 五分钟 执行的文件
   	 */5 * * * *  /usr/local/php/bin/php    /home/wwwroot/default/push.php
	/usr/local/php/bin/php : PHP 的安装路径
	/home/wwwroot/default/push.php 需要执行的脚本文件
	
	*/5 * * * *   /usr/bin/curl  https://xxx.com/url
	
	
*  *  *  *  *  command
分  时  日  月  周  命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0/7表示星期天 )

举例:每5秒执行写入 当前日期入文件
一、 crontab 的延时: 原理:通过延时方法 sleep N 来实现每N秒执行。
二、 shell 脚本实现
* * * * * sleep 5; /usr/bin/curl http://www.test.com
* * * * * sleep 10; /usr/bin/curl http://www.test.com
......
注意:
60必须能整除间隔的秒数(没有余数),例如间隔的秒数是2,4,6,10,12等。
如果间隔的秒数太少,例如2秒执行一次,这样就需要在crontab 加入60/2=30条语句。

shell脚本:
* * * * * /home/php/crontab/crontab.sh 

shell 脚本实现 crontab.sh文件

#!/bin/bash  
  
step=2 #间隔的秒数,不能大于60  
for (( i = 0; i < 60; i=(i+step) )); do  
    $(php '/home/fujieace/php/crontab/tolog.php')  
    sleep $step  
done  
exit
特殊字符代表意义
*(星号)代表任何时刻都接受的意思!举例来说,范例一内那个日、月、周都是 * , 就代表著『不论何月、何日的礼拜几的 12:00 都运行后续命令』的意思!
,(逗号)代表分隔时段的意思。举例来说,如果要下达的工作是 3:00 与 6:00 时,就会是:0 3,6 * * * command 时间参数还是有五栏,不过第二栏是 3,6 ,代表 3 与 6 都适用!
-(减号)代表一段时间范围内,举例来说, 8 点到 12 点之间的每小时的 20 分都进行一项工作:20 8-12 * * * command 仔细看到第二栏变成 8-12 喔!代表 8,9,10,11,12 都适用的意思!
/n(斜线)那个 n 代表数字,亦即是『每隔 n 单位间隔』的意思,例如每五分钟进行一次,则:/5 * * * command很简单吧!用 * 与 /5 来搭配,也可以写成 0-59/5 ,相同意思!

查看contab执行日志

CentOS: tail -f /var/log/cron

Ubuntu: tail -f /var/log/cron.log

注:Ubuntu 默认没有开启cron log.

在/etc/rsyslog.d/50-default.conf文件中取消#cron.* /var/log/cron.log注释符号#, 
并重启rsyslog sudo service rsyslog restart

解释: >/dev/null 2>&1
os.system("/etc/init.d/winbind stop >/dev/null 2>&1")

(>/dev/null) 将输出重定向到/dev/null,这是个空设备,也就是忽略其输出。
2>&1 是将错误输出到标准输出,如果在控制台调试,也就是屏幕上,方便调试。
有3个默认的i/o,0是标准输入,一般是键盘;1是标准输出,一般是屏幕了;2是标准错误。

/dev/null 代表空设备文件

:>代表重定向到哪里,例如:echo “123” > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

那么本文标题的语句:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值