crontab日常使用梳理
在日常的运维工作中,对crontab定时任务的制定是再寻常不过的了。根据以往的使用经验梳理如下:
基本格式 :
* * * * * command
分 时 日 月 周 命令
解释:
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时0~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6/7(0或7表示星期天)(或用Sun或Mon简写来表示)
第6列要运行的命令
crontab -e 编辑计划任务
crontab -l 查看计划任务
crontab -u username -e 在username用户下编辑计划任务
crontab -u username -l 查看username下的计划任务
crontab -u username -r 删除某个用户的计划任务
所有用户定义的crontab存储在目录/var/spool/cron下(可以在这个目录下直接编辑和删除),任务会以创建者的身份被执行。要以特定用户创建一个crontab,先以该用户登录,执行命令crontab -e(或者在root下执行crontab -u username -e)
crontab的日志是/var/log/cron
实例如下:
1)每一分钟执行/root/monit.sh这个脚本
* * * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
或者
*/1 * * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
每n分钟执行一次
*/n * * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
2)每一小时执行/root/monit.sh这个脚本
10 * * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
上面的10可以是任何一个数字,其实就是每一小时的第10分钟,或者第n分钟。
每n小时执行一次
n */n * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
每两小时执行一次
0 */2 * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
23:00到7:00之间每隔2小时执行一次
0 23-7/2 * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
23:00到8:00之间每隔1小时执行一次
0 23-8/1 * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
3)每晚23:59分钟执行
59 23 * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
即每天的m点的n分钟执行(也即每天执行一次,就是说每天的某个时候去执行就行)
n m * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
4)晚上11点到早上8点之间每两个小时执行
0 23-8/2 * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
5)每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点执行
0 11 4 * 1-3 /bin/bash -x /root/monit.sh > /dev/null 2>&1
或者
0 11 4 * mon-wed /bin/bash -x /root/monit.sh > /dev/null 2>&1
6)1月1日早上4点执行
0 4 1 1 * /bin/bash -x /root/monit.sh > /dev/null 2>&1
7)每周日的4:30执行一次(也即每周执行一次)
30 4 * * 0 /bin/bash -x /root/monit.sh > /dev/null 2>&1
8) 每个月的第一天的6:00执行一次(也即每月执行一次)
0 6 1 * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
9)每月的第1、10、22天的7:30执行一次
30 7 1,10,22 * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
10)每周六、周天的凌晨1:00执行
0 1 * * 6,0 /bin/bash -x /root/monit.sh > /dev/null 2>&1
11)每周一到周五的凌晨2:30执行
30 2 * * 1-5 /bin/bash -x /root/monit.sh > /dev/null 2>&1
12)每天18:00至23:0之间每隔30分钟执行
0,30 18-23 * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
或者
*/30 18-23 * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
13)每10秒钟执行一次
* * * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
* * * * * sleep 10;/bin/bash -x /root/monit.sh > /dev/null 2>&1
* * * * * sleep 20;/bin/bash -x /root/monit.sh > /dev/null 2>&1
* * * * * sleep 30;/bin/bash -x /root/monit.sh > /dev/null 2>&1
* * * * * sleep 40;/bin/bash -x /root/monit.sh > /dev/null 2>&1
* * * * * sleep 50;/bin/bash -x /root/monit.sh > /dev/null 2>&1
每20秒执行一次
* * * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1
* * * * * sleep 20;/bin/bash -x /root/monit.sh > /dev/null 2>&1
* * * * * sleep 40;/bin/bash -x /root/monit.sh > /dev/null 2>&1
每10秒钟执行一次下面的php脚本(log记录)
* * * * * php /home/fdipzone/php/crontab/tolog.php
* * * * * sleep 10; php /home/fdipzone/php/crontab/tolog.php
* * * * * sleep 20; php /home/fdipzone/php/crontab/tolog.php
* * * * * sleep 30; php /home/fdipzone/php/crontab/tolog.php
* * * * * sleep 40; php /home/fdipzone/php/crontab/tolog.php
* * * * * sleep 50; php /home/fdipzone/php/crontab/tolog.php
使用 tail -f 查看执行情况,可以见到log每10秒被写入一条记录。
tail -f /home/fdipzone/php/crontab/run.log
2. 2014-03-31 21:47:01
3. 2014-03-31 21:47:11
4. 2014-03-31 21:47:21
5. 2014-03-31 21:47:31
6. 2014-03-31 21:47:41
7. 2014-03-31 21:47:51
8. 2014-03-31 21:48:01
-------------------------------------------------------------------------------------------------
有一台内网服务器,通过squid代理上网。发现在这台内网服务器设定的crontab计划任务无效,没有自动执行!
[root@wang-beta ~]# vim /etc/profile
.....
export HTTP_PROXY=http://192.168.1.199:3128
[root@wang-beta ~]# source /etc/profile
[root@wang-beta ~]# crontab -e
*/28 * * * * /bin/bash /root/sbin/list_update.sh > /dev/null 2>&1
发现上面制定的计划任务,手动执行是生效的。但是crontab自动执行无效。
解决办法:
自动执行无效的原因是没有加载上相关环境变量所致。
执行前,强制添加系统环境变量即可
[root@wang-beta ~]# crontab -e
*/28 * * * * source /etc/profile;/bin/bash /root/sbin/list_update.sh > /dev/null 2>&1
-------------------------------------------------------------------------------------------------
将/var/spool/cron/root文件锁定(chattr +ai /var/spool/cron/root),这样,crontab在root用户下就编辑不了。
crontab服务的启动:
/etc/init.d/crond start/stop/restart/status
crontab日常使用梳理的更多相关文章
- Redis Cluster日常操作命令梳理
在之前的一篇文章已经介绍了Redis Cluster及其部署,下面说下Redis Cluster日常操作命令: 一.以下命令是Redis Cluster集群所独有的,执行下面命令需要先登录redis: ...
- kvm虚拟机日常操作命令梳理
KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理.废话不多说,下面列出kvm日常管理中的命令 1)查看KVM虚拟机配置文件及运行状态 KVM虚拟机默认配置文件位置: /etc/libvirt ...
- Centos7.4安装kvm虚拟机(使用virt-manager管理)
之前介绍了使用WebVirtMgr或Openstack来部署及管理kvm虚拟机,下面简单介绍centos7.4下使用virt-manager部署及管理kvm虚拟机的做法: 0)KVM是什么 KVM(K ...
- redis学习笔记(详细)——高级篇
redis学习笔记(详细)--初级篇 redis学习笔记(详细)--高级篇 redis配置文件介绍 linux环境下配置大于编程 redis 的配置文件位于 Redis 安装目录下,文件名为 redi ...
- Shell之awk
Shell之awk 目录 Shell之awk 一.awk概述 1. awk的工作原理 2. 命令格式 3. awk常见的内建变量(可直接用) 二.操作实例 1. 按行输出文本 2. 按字段输出文本 3 ...
- centos linux系统日常管理复习 CPU物理数逻辑核数,iftop ,iotop ,sar ,ps,netstat ,一网卡多IP,mii-tool 连接,ethtool速率,一个网卡配置多个IP,mii-tool 连接,ethtool速率 ,crontab备份, 第十八节课
centos linux系统日常管理复习 物理CPU和每颗CPU的逻辑核数,uptime ,w,vmstat,iftop ,iotop ,sar ,ps,netstat ,一个网卡配置多个IP,mii ...
- centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课
centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课 ...
- ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项(红字需要留意)
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- kvm虚拟机日常管理和配置操作命令梳理
KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理.1)查看KVM虚拟机配置文件及运行状态KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/autostart目录是配置kvm ...
随机推荐
- android调试工具DDMS的使用详解
具体可见http://developer.android.com/tools/debugging/ddms.html. DDMS为IDE和emultor.真正的android设备架起来了一座桥梁.开发 ...
- CLLocationManagerDelegate不调用didUpdateLocations (地图)
这是因为xcode升级造成的定位权限设置问题.升级xcode6以后打开以前xcode5工程,程序不能定位.工程升级到xcode6编译时需要iOS8 要自己写授权,不然没权限定位.解决方法:首先在 in ...
- 【C语言】C语言简介
目录: 1. [什么是C语言?] 2. [C语言历史] 3. [C语言标准] 4. [C语言特点] 1. 什么事C语言? · C语言是一门高级编程语言,用于人与计算机之间的沟通,就如同人与人之间沟通时 ...
- 访客至上的Web、移动可用性设计--指导原则
文章出自:听云博客 关于可用性设计,之前写过一个“纸上谈兵”版本的,那篇帖子主要是根据A/B test的方式来进行的. 但是最近找了本Steve krug写的Don't make me think,我 ...
- 【Android】Vitamio 4.0 正式版发布/ Vitamio IOS 测试版发布(2013-07-16)
一.链接 Vitamio官网:http://www.vitamio.org/ 官网github地址:https://github.com/yixia 自己无法编译通过的这里下载: Vitamio 4. ...
- OC 动态类型,动态绑定,动态加载
OC 动态类型,动态绑定,动态加载 Objective-C具有相当多的动态特性,基本的,也是经常被提到和用到的有 动态类型(Dynamic typing) 动态绑定(Dynamic binding) ...
- IOS之UI--动态设置NavigationBar的颜色以及透明度
前言:有时候我们需要设置UINavigationController的导航条NavigationBar的颜色为透明度,这时候就需要使用到NavigationBar的barStyle这个属性: 再看QQ ...
- 安装centos 7后恢复windows 2008R2 (Windows7)启动项
安装CentOS 7,安装之后发现Win2008R2的启动项不见了(Windows7同理).一般安装Linux过程中会自动识别windows系统并添加引导项,centos的问题在于默认不支持ntfs分 ...
- 玩了一天的Git
今天的逗比事 Git从学习到使用,也有2个月时间了,一开始也就看看廖雪峰老师的Git教程,跟着做了一遍,感觉非常受用. 遇到一些忘掉的命令,再回去查查也基本都没问题. 但是今天缺遇到了逗比事,回过头来 ...
- jQuery自动完成组建Autocomplete
一,属性介绍 * minChars (Number) 在触发autoComplete前用户至少需要输入的字符数.Default: 1,如果设为0,在输入框内双击或者删除输入框内内容时显示列表* wid ...