周期性任务计划

相关程序包:

cronie:主程序包,提供了crond守护进程及相关辅助工具

cronie-anacron:cronie的补充程序;用于监控cronie任务执行状况;如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次次任务

crontabs:包含CentOS提供系统维护任务

计划任务守护进程crond运行状态查看方法

CentOS7:

systemctl status crond

CentOS6:

service crond status

编写计划任务两种方式:

  系统计划任务设定:编写配置文件/etc/crontab

  用户计划任务设定:执行# crontab -e 命令。在实际工作中,一般采用此方式设定计划任务

crontab命令常用选项

crontab -l:查看自己的cron任务列表

crontab -e:通过EDITOR变量中定义的编辑器打开用户自己的cron配置文件;编辑单独的任务都使用-e选项,无论是删除、修改还是新建

crontab -r:移除crontab文件,慎用!

crontab -i:同-r一同使用,以交互式模式让用户有选择的删除指定任务

crontab -u UserName:仅root可运行,指定某个用户,需要配合其他选项如-l -e使用例如:#crontab -e -u docker(管理员root用户给docker用户设定计划任务)

计划任务编写格式

时间格式

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr …

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name  command to be executed

时间格式举例:
* * * #每天7点6分
* *   #每月8号 7点6分
* * *   #每月8号7点,每分钟执行
- * * *   #每天7点30-35分,每分钟执行
, * * * *   #每小时的5,35分钟执行
-/ * * * *    #每小时的5-45分钟,每隔三分钟执行一次

时间表示法说明:

(1)特定值:每个时间位都应该使用其可用的有效取值范围内的值;

(2)*:某时间位上的*表示对应位的所有有效取值;

(3)-:连续的时间相邻点取值

(4),:离散的时间点取值 #,#,#

(5)/#:表示在指定时间范围内每隔#一次;

另一种时间格式

@reboot       Run once after reboot   #每次系统重启或者重新开机都执行一次

@yearly         0 0 1 1 *

@annually     0 0 1 1 *

@monthly      0 0 1 * *

@weekly        0 0 * * 0

@daily           0 0 * * *

@hourly         0 * * * *

计划任务编写举例

(1)每3分钟执行一个echo "how are you?"
# crontab -e
*/3 * * * * /bin/echo "how are you?" (2)每周2、4、6备份/etc/目录至/backup目录中,备份的文件名以当前etc_开头并跟上当日的日期作为文件名
# crontab -e
3 2 * * 2,4,6 /bin/tar -Jcf /backup/etc_`date '+%F'` .tar.xz /etc/* (3)周天6、9、12、15、18查看一下当前系统挂载的所有文件系统,并将查看的结果追加至/tmp/mounts.txt文件中
# crontab -e
17 6,9,12,15,18 * * * /bin/mount >> /tmp/mounts.txt (4)每天每两小时取当前系统内存空间余量,将其保存至/stats/memory.txt文件中
# crontab -e
1 */2 * * * /bin/grep "^MemFree:" /proc/meminfo >> /stats/memory.txt

制作定时任务的规范:

1、为定时任务加必要的注释

2、执行shell脚本任务前加/bin/sh

3、默认输出信息会以邮件形式发送到用户,可通过重定向到/dev/null中来拒收邮件

如:1 1 * * * /bin/bash xxxx.sh &>/dev/null

4、定时任务命令或程序最好写到脚本里执行

5、在指定用户下执行相关的定时任务

6、定时任务执行的脚本要规范路径(/server/scripts)

Linu计划任务/crontab命令的更多相关文章

  1. 7.控制计划任务crontab命令

    at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的Linux 系统上面原本就有非常多的计划 性工作,因此这个系统服务是默认 ...

  2. Linux下计划任务:crontab 命令的权限说明

    Linux下的计划任务: 使用crontab命令来执行调度,在 Linux 下可以通过创建文件 /etc/cron.allow 或者 /etc/cron.deny 来控制权限,如果 /etc/cron ...

  3. 使用crontab命令添加计划任务

    Ubuntu 16.04, 计划任务 就是 有(时间)计划地执行(做)任务,有计划 包括 定时执行(在哪些时间点执行任务).按照周期执行(每隔多少时间执行任务). 那么,什么是任务呢?就是 自己想要干 ...

  4. Linux运维技术之详解任务计划(crontab命令)

    crontab命令 按照预先设置的时间周期(分钟.小时.天……)重复执行用户指定的命令操作,属于周期性计划任务 (1).先来看一下/etc/crontab文件的内容: [root@localhost ...

  5. 二十三、Linux任务计划及周期性任务执行:at、crontab命令

    一.概述 未来的某时间点执行一次某任务:at, batch周期性运行某任务:crontab 这两个任务的执行结果:会通过邮件发送给用户 (本地终端用户之间的邮件通知) centos 5,6,7默认开启 ...

  6. Linux任务计划及周期性任务执行:at、crontab命令

    一.概述 未来的某时间点执行一次某任务:at, batch 周期性运行某任务:crontab 这两个任务的执行结果:会通过邮件发送给用户 (本地终端用户之间的邮件通知) centos 5,6,7默认开 ...

  7. linux命令:crontab命令(转)

    一.crond简介 二.crond服务 三.crontab命令详解 四.使用注意事项 linux系统是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作 ...

  8. linux下crontab命令的使用

    1.crond crond是Linux下的一个守护进程,与windows下的计划任务类似,当操作系统安装完成后,默认会安装并启动进程,Linux下的任务调度分为两类,系统任务调度和用户任务调度. 系统 ...

  9. linux定时执行任务crontab命令用法

    linux系统的定时任务是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于使用者自己也可以设置计划任务,所 ...

随机推荐

  1. 用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)

    (软件环境) 『系统』Windows 10 x64 『JAVA』JDK 1.8.0_91 『Eclipse』 Eclipse-oxygen 『Maven』 apache-maven-3.6.3 『Je ...

  2. bm坏字符 , Horspool算法 以及Sunday算法的不同

    bm坏字符 , Horspool算法 以及Sunday算法的不同 一.bm中的坏字符规则思想 (1)模式串与主串从后向前匹配 (2)发现坏字符后,如果坏字符不存在于模式串中:将模式串的头字符与坏字符后 ...

  3. ios开源

    a http://code.cocoachina.com b http://code4app.com c http://www.oschina.net/ios/codingList/ d github ...

  4. 【代码学习】PYTHON迭代器

    一.迭代器 迭代是访问集合元素的一种方式.迭代器是一个可以记住遍历的位置的对象.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 二.可迭代对象 以直接作用于 ...

  5. C/C++ 传递信息给Java

    #开始 今天有人问我C++怎么给Java传递消息 大概需求是 用C++写了一个窗口 需要把编辑框里面的东西传递给Java做处理 #解决过程 我现在能想到的有三个简单的方法 1. Socket编程 通过 ...

  6. github是什么,有什么用

    转载连接:https://blog.csdn.net/obkoro1/article/details/68066441 写在前面:关于github的文章我已经写了两篇了,关于github个人网站搭建和 ...

  7. 洛谷 P5016 龙虎斗(模拟)

    嗯... 题目链接:https://www.luogu.org/problem/P5016 这道题是一道模拟,不要考虑复杂,直接暴力枚举每一个点,看看加上s2之后两个势力的差值,找最小,记录下标. 注 ...

  8. phpstorm问题

    主题 PreferencesPreferencesPreferences 重要的事情说3边,而不是default setting Preferences->Appearance & Be ...

  9. about Base64

    用webservice传送文件的时候发现,如果发送的文件中有0x00字符,会被认为是字符串结尾,后面的内容就发送不过去,因此需要对不是纯文本格式的文件做BASE64编码,这样文件中就不会有0x00这样 ...

  10. Redis的安装和启动(一)

    一.Redis的安装 获取redis的安装包 ①如果能上网,选择以下命令:wget http://download.redis.io/releases/redis-3.2.11.tar.gz ②如果不 ...