crontab的简单使用__watch超越crontab精度达到秒级的定时调度器

来源:互联网 发布:生成对抗网络 编辑:程序博客网 时间:2024/06/08 13:16

1、crontab的使用的简单使用:

        crontab是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动关闭这个服务: 

/sbin/service crond start //启动服务 //也可以用/ect/init.d/cron start
/sbin/service crond stop //关闭服务 
/sbin/service crond restart //重启服务 
/sbin/service crond reload //重新载入配置

注意,所有关于cron的操作,都要在root权限下进行,所以要sudo。

开机自动启动cron服务:

如何使系统启动时,就启动cron服务?

使用下面的方法:

在/etc/rc.d/rc.local这个脚本的末尾加上: 
/sbin/service crond start

cron服务启动以后,我们就可以使用cron服务了:

现在cron这个服务已经在进程里面了,我们就可以用这个服务了,cron服务提供以下几种接口供大家使用:

方法一、直接用crontab命令编辑(针对用户的) //要sudo的

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明: 
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 
crontab -l //列出某个用户cron服务的详细内容 
例如:crontab -u username -l
crontab -r //删除某个用户的cron服务 例如:crontab -u username -r 
crontab -e //编辑某个用户的cron服务 例如:crontab -u username -e

比如,root查看自己的cron设置: crontab -u root -l 
再例如,想删除fred的cron设置: crontab -u fred -r 
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e 
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

基本格式 :
*   *  *  *  *   command

分  时  日 月 周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

时间上除了数字,还有几个个特殊的符号就是"*"、"/"和"-"、",",

* 代表所有的取值范围内的所有数字,

*/ 代表每的意思, */5 表示 每5个单位, 例如,放在第一个位置上*/5就是每5分钟。

- 代表从某个数字到某个数字,

, 分开几个离散的数字。

特别注意:

具体格式要求如下: 
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。

即格式为:

时间 命令(包含完整路径)

*(分) *(时) *(天) *(月) *(星期)  命令完整路径(或可执行程序的完整路径)

请参看例子

以下举几个例子说明问题: 
早上6点 0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。 //单纯就是6点钟,所以分钟为0

每分钟 */1 * * * * ls /data >> /home/chenbaihu/test.xml

每两个小时 0 */2 * * * echo "Have a break now." >> /tmp/test.txt //每两小时的0分钟

晚上11点到早上8点之间每两个小时,早上八点

0 23-8/2,8 * * * echo "Have a good dream:" >> /tmp/test.txt

1月1日早上4点 0 4 1 1 * command line

注意:

        每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的只可以用crontab -u username -e 来编辑

cron启动后每过一分钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。 

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启lighttpd 。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启lighttpd 。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启lighttpd 。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd

 

方法二、编辑/etc/crontab 文件配置cron(针对系统的任务)            //不做介绍,大家想看了,自己可以找找

 

2、如何使用watch实现秒级的定时任务调度:

      原文:http://user.qzone.qq.com/1780551083/blog/1326703236

     平时大家喜欢用crontab触发一些定时任务,毋庸置疑,crontab时间策略超级灵活,但也有一个最大的弊病,最高只能精确到分钟级。在一些实时性要求很高的场合中,这是远远满足不了需求的。


     其实大家忽略了linux中的另一个命令-watch,功能类似crontab,但是一般在前端运行,每次运行时都清屏,然后把程序结果显示在标准输出上面。因些想实现一个简单的定时监控器的话,最简单的就是用watch命令了,比如 watch 'ifconfig',在屏幕上每隔2秒刷新ifconfig命令运行结果,监控效果是非常之好。

     百闻不如一见,自己动手运行一下watch 'ifconfig',就知道出现神马效果了。
     

watch超越crontab精度达到秒级的定时调度器 - 无影 - 激情、专注、坚持、思考

    

     watch 还支持-n参数,用户可以指定时间间隔,默认是2秒钟一次,远远高于crontab的最高一分钟一次的精度。 
     由于watch设计的初衷主要是用来实现屏幕监控,和crontab定时后台调度有点不一样,其实人的智慧是无穷的,我们稍微改造一下,即可得到一高精度版的crontab定时调度器。
     很简单,创建一个crontaben.sh,内容如下
     nohup watch 'date >/tmp/date.tmp' >/dev/null &
     在命令行上运行./crontaben.sh,关掉终端,
     再另外开一个终端,ps -ef|grep watch,是不是会发现有一个watch进程常驻?再去/tmp下观察date.tmp,是不是每2秒钟刷新一次?

    

图片



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 老婆提出离婚我不想离怎么办 极度缺爱的人怎么办 生二胎住院大宝怎么办 爸妈偏心我该怎么办 无创21体高风险怎么办 无创检查高风险怎么办 唐氏筛查21三体高危怎么办 唐筛年龄高风险怎么办 21三体综合症高风险怎么办 朋友深陷李强365怎么办 飞机上烟瘾犯了怎么办 怀孕一个月吸烟了怎么办 烟瘾犯了没烟怎么办 押金交了不租了怎么办 买车首付款不够怎么办 双11订金不退怎么办 在商场买到假货怎么办 网上买到假手机怎么办 网上买了假手机怎么办 网银转账被骗了怎么办 支付宝被骗了钱怎么办 被支付宝骗了钱怎么办 头发出油怎么办小妙招 照相的时候脸歪怎么办 怀孕两个月同床了怎么办 小姐被警察抓了怎么办 我的世界迷路了怎么办 砸到手指甲很痛怎么办 手被锤子砸肿了怎么办 拇指突然疼肿了怎么办 手指甲压紫了痛怎么办 砸到手指头肿了怎么办 小婴儿体重不长怎么办 2岁半宝宝不说话怎么办 米兰叶子掉光了怎么办 qq雷霆战机闪退怎么办 微信限额20万怎么办 欧拉方程x<0怎么办 柿子核吃下去了怎么办 橡胶底白色变黄怎么办 20了丁丁还很小怎么办