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

crontab计划任务:

1)常见用法:

crontab命令的作用和用法如下:

描述:为每个用户维护周期性的计划任务文件

用法:crontab [-u 用户][-l|-r|-e]

-u   指定某个用户的计划任务(只有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

linux crontab 每7天,Linux下计划任务神器-Crontab相关推荐

  1. Linux计划任务(at,crontab)

    在LINUX中,我们通过crontab和at这两个东西来实现 at:它是一个可以处理仅执行一次就结束的指令 crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去 ...

  2. Linux之计划任务服务crontab

    Linux之计划任务服务crontab Linux中的计划任务:crontab Windows中计划任务 Linux中的计划任务 crontab -e命令:计划任务的编辑 计划任务权限 Linux中的 ...

  3. Linux下使用SSH、Crontab、Rsync三工具实现数据自动备份

    Linux下使用SSH.Crontab.Rsync三工具实现数据自动备份 作为网管人员大概都无一例外的经历过系统备份,尤其是重要系统的备份.重要数据库系统的备份工作.由于备份是个频繁而琐碎的工作,如何 ...

  4. linux计划任务之crontab

    语法:        crontab [ -u user ] file        crontab [ -u user ] [ -i ] { -e | -l | -r } 说明: crontab命令 ...

  5. linux下crontab命令的用法,linux 定时任务crontab用法详解

    linux 定时任务crontab用法详解 linux中crontab命令用于设置周期性被执行的指令,该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读 ...

  6. linux下crontab命令的用法,Linux下crontab命令的用法

    crond 是linux用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作.而linux ...

  7. Linux下计划任务和标准化工作流程

    1.定时任务和计划任务: 2.一次性定时任务at(生产中很少使用) at命令: at [option] TIME常用选项:-V 显示版本信息:-l: 列出指定队列中等待运行的作业:相当于atq-d: ...

  8. linux cron源码下载,LINUX计划任务管理_AT与crontab

    at命令 一次性计划任务 服务脚本名称:/etc/init.d/atd 设置格式:at  [HH:MM]  [yyyy-mm-dd] [[email protected]~]# date 2011年  ...

  9. linux定时任务crontab每月,linux centos 计划任务 定时任务 crontab

    1.查看自启动列表 chkconfig --list(centos6) systemctl is-enabled crond.service (centos7) 2.查看目前是否已经启动 ps aux ...

最新文章

  1. php通过QQ号获取QQ信息,通过openId能获取到QQ号码吗?
  2. 【项目管理】ITTO-沟通管理
  3. modbus-rtu qt4-serialport2------micro2440 as host
  4. php基础教程文档,PHP5基础教程
  5. 银屑病需要的碱性食物
  6. android视图工具,android studio的HierarchyViewer工具如何知道android屏幕的视图属性
  7. WPF实现用户头像裁剪
  8. 字符串题目---2判断两个字符串是否为变形词
  9. word制作电子签名
  10. Java编程:栈的应用实例——简单的综合计算器实现(中缀表达式)
  11. 计算机网络(北京理工大学出版社)课后习题答案
  12. 关于TRACERT和TTL
  13. raize控件的安装注意
  14. mongodb java 安装配置_Mongodb的java学习安装部署
  15. 用Python分析44万条数据,揭秘如何成为网易云音乐评论区的网红段子手
  16. Java实现图片压缩功能
  17. java自动往数据库里插shuaku_x大x鸟的青鸟云课堂自动答题实现原理
  18. Spring学记笔记
  19. C/C++编程:实现hash函数
  20. Neo4j【有与无】【N1】介绍

热门文章

  1. 代码混淆之道——控制流扁平与不透明谓词理论篇
  2. 蓝桥杯·寒假百校真题大联赛(大学B组)(第1期)python
  3. 49岁周慧敏近照,使唤古天乐当佣人,丈夫抱怨不生孩子不是女人
  4. 12岁写代码,为数百万程序员引路,这位世界级编程大师不简单
  5. 目标检测算法实现(八)——YOLOV5学习笔记
  6. m4b格式 android,【资源分享】安卓强大音乐播放器stellio5.5.7(beta)去广告版
  7. Contest-51-直播获奖
  8. 传说中的程序员十层楼
  9. 探花交友_第1章_项目介绍以及实现登录功能_第1节_功能介绍
  10. 探花交友_第4章_圈子功能实现