Linux下计划任务神器-Crontab

作为系统运维人员都清楚,在Linux下定义重复性的任务,我们一般会采用crontab来进行:crontab这个指令所设置的工作将会循环的一直进行下去!可循环的时间为分钟、小时、每日、每月、每周。

crontab计划任务:

1)常见用法:
crontab命令的作用和用法如下:
描述:为每个用户维护周期性的计划任务文件
用法:crontab [-u 用户][-l|-r|-e]

 -u <user>  指定某个用户的计划任务(只有root用户才有这个权限)
 -e         编辑用户的计划任务
 -l         列出用户的计划任务
 -r         删除用户的计划任务
 -i         删除时进行交互式操作
 
 用户的cron计划任务文件格式含义如下:
 *     *     *     *     *    指令
 分    时    日    月    周  指令
 0-59  0-24  1-31  1-12  0-7


如果需要指定时间段:
 a:可以使用横杠(-)表示一段连续的时间
 b:使用逗号(,)表示若个不连续的时间
 c:使用星号(*)表示所有的时间,使用除号(/)表示间隔时间
    

2)crontab的常规用法:
# 列出用户root的计划任务

[root@localhost ~]# crontab -l
*/30 * * * * ntpdate -u s2m.time.edu.cn >/dev/null 2>&1

# 列出用户wanlong的计划任务

[root@localhost ~]# crontab -l -u wanlong 
* */5 * * * /usr/bin/ping 127.0.0.1 >/dev/null

# 计划任务的配置文件是保存在/var/spool/cron/下,只要有计划任务的用户都对应有配置文件

[root@localhost ~]# 
cd /var/spool/cron/
[root@localhost cron]# ls
root  wanlong
[root@localhost cron]# cat wanlong 
* */5 * * * /usr/bin/ping 127.0.0.1 >/dev/null
[root@localhost cron]# cat root 
*/30 * * * * ntpdate -u s2m.time.edu.cn >/dev/null 2>&1
说明:可以发现/var/spool/cron/wanlong与crontab -l -u wanlong显示的结果是一直的,然后我们测试下直接修改配置文件,看计划任务是否生效
[root@localhost cron]# echo 
"* */2 * * * /usr/bin/ping 127.0.0.1 >/dev/null"
 >>/var/spool/cron/root
[root@localhost cron]# crontab -l
*/30 * * * * ntpdate -u s2m.time.edu.cn >/dev/null 2>&1
* */2 * * * /usr/bin/ping 127.0.0.1 >/dev/null
说明:以上可知,直接修改配置文件,仍旧生效。

3)如何实现秒级别crontab

方法1:使用sleep加间隔时间的模式

# crontab -l
* * * * * for min in 0 1 2;do echo "hi";sleep 20;done

方法2:转换成脚本进行

#!/bin/bash
#created by molewan
while:
do 
    /test.sh 
sleep 7
done
# chmod 755 seconds.sh
# nohup bash seconds.sh &

补充知识:
sleep用法格式:
 sleep NUMBER[SUFFIX]
 SUFFIX值可以为s(秒,默认值)、m(分钟)、h(小时)、d(天数)

4)计划任务如何每7分钟运行(分钟取值范围0-59)

不能被60整除的,不能精确做到真正运行

错误做法: */7 * * * *

推荐的方法:

#!/bin/bash
#created by molewan
while:
do
 /test.sh
sleep 7
done

5)练习:
1、每4小时备份一次/etc目录至/backup目录中,保存文件名称格式为“etc-yyyy-mm-dd-HH.tar.xz”

# crontab -l
* */4 * * * tar -cJPf /backup/etc-$(date +%F-%k).tar.xz /etc >/dev/null 2>&1

2、每周2,4,7备份/var/log/messages文件至/logs目录中,文件名为“messages-yyyymmdd”;

# crontab -l
* * * * 2,4,7 tar -cf /logs/messages-$(date +%y%m%d)

3、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加/tmp/meminfo.txt文件中

[root@zabbix ~]# egrep -i "^(S|M)" /proc/meminfoMem
Total:        5947112 kB
MemFree:         1669468 kB
MemAvailable:    2726264 kB
SwapCached:       116600 kB
Mlocked:               0 kB
SwapTotal:       4194300 kB
SwapFree:        3288708 kB
Mapped:           117324 kB
Shmem:            285240 kB
Slab:             188640 kB
SReclaimable:     133080 kB
SUnreclaim:        55560 kB
# crontab -l
* */2 * * * egrep -i "^(S|M)" /proc/meminfo>>/tmp/meminfo.txt

4、工作日时间内,每小时执行一次“ip addr show”

* */1 * * 1-5 /usr/sbin/ip addr show

6)其它注意事项:
a、在 Linux 下面的 crontab 会自动的帮我们每分钟重新读取一次 /etc/crontab 的例行工作事项;
b、但是某些原因或者是其他的 Unix 系统中, 由于 crontab 是读到内存当中的,所以在你修改完 /etc/crontab 之后,可能并不会马上执行,这个时候请重新启动crond服务 ;
c、周与日月的计划任务不可同时并存

重启crond服务:

CentOS7下重启crond服务
[root@zabbix ~]# systemctl restart crond.service
[root@zabbix ~]# echo $?0
执行前先看下,是否有计划任务正在执行
CentOS6下重启crond服务
[root@Openstack-01 ~]# /etc/init.d/crond restart
[root@Openstack-01 ~]# echo $?0


原创文章,作者:Net21-冰冻vs西瓜,如若转载,请注明出处:http://www.178linux.com/25107

(0)
Net21-冰冻vs西瓜Net21-冰冻vs西瓜
上一篇 2016-07-22
下一篇 2016-07-22

相关推荐

  • 文本处理工具

    首先介绍一下wc 这个工具,一看到这个词,我不禁捧腹大笑,这不是我们经常要去的地方吗?其实我们都错了,厕所的正确翻译为toilet,为什么叫wc 呢?这中间还有个故事,在这里就大概说一下吧。 很早以前,厕所Toilet里都有水箱watercloset, 人们一提到water closet就想到了toilet,因此watercloset就成了toil…

    2017-07-29
  • ☞SELinux

    ☞SELinux 概述 SELinux(Secure Enhanced Linux)是美国国家安全局(NSA)和SCC开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中。它能够限制权限,进程只能访问那些在他的任务中所需要文件。 Selinux是根据最小权限模型去限制进程在对象(如文件,目录,端…

    Linux干货 2016-09-18
  • 马哥教育网络第21期-第五周课程练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@6 ~]# grep '^[[:space:]]\+' /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白…

    Linux干货 2016-08-15
  • 软链接与硬链接的分析

    Linux引用硬链接与软链接,是为了实现文件的共享,更有隐藏文件路径、增加权限安全及节省存储等的好处。很多新手不知道软链接与硬链接的区别,今天大家一起总结它们的区别吧^_^ 一,硬链接 硬链接的特性可以体现出什么是硬链接: 通过索引节点来进行链接,文件要有相同的inode及data block 不允许跨分区创建 只有在同一文件系统中的文件之间才可以,不能交叉…

    2017-07-22
  • 网络26期 第一周作业

    1、描述计算机的组成及其功能。 计算机由cpu、存储器(内存)、输入设备(Input)、输出设备(Output),其中cpu中的运算器和控制器是必要的,这拥有以上五个部件就可以组成一个能正常工作的计算机,但是内存无法永久保存数据于是还需要一个硬盘来永久保存数据,硬盘也是存储器的一种但是它却是一个io设备,即至少是输入或者输出设备中的一种.所以我将其分开来说了…

    Linux干货 2017-01-18
  • 文件查找相关:whereis、find和locate

        本文将对find和locate进行详细讲解 命令简介 名称:whereis     功能:定位文件所在的目录     用法:whereis shell命令     注意:whereis是根据环境变量PATH来查找文件的,而PATH通常设置成存放命令的那些路径,如/bin、…

    Linux干货 2016-04-05

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-22 11:18

    写的很好,排版还可以在漂亮一点,crontab有些地方写的不对,加油