cron任务计划

日期: 2015年09月05日

任务计划:

任务计划分为两种:

1、在未来时间点一次性执行某任务,用到的工具: at、batch

2、在未来时间内周期性执行某任务,用到的工具: cron

查看系统监听端口:

ss -tnl

netstat -tnl

================================================================================

电子邮件服务:

smtp:simple mail transmission protocol 简单邮件传输协议

/var/spool/mail/USERNAME

pop3:post office protocol 邮局协议

imap4:internet mail access protocol互联网访问协议

邮件服务启动与否状态查看: netstat -tnl 或 ss -tnl

[[email protected] ~]# netstat -tnl | grep ‘:\<25\>‘

tcp    0    0    127.0.0.1:25    0.0.0.0:*    LISTEN

tcp    0    0    ::1:25          :::*         LISTEN

127.0.0.1:25 表示此服务的端口仅监听在本地的回环接口上,默认收发邮件

仅能在本机上的用户间进行,且只能通过回环接口上的地址进行。

================================================================================

mail命令

用法:

mail:进入交互式收发邮件接口

q: 退出

N: 查看第N封邮件

mail -s "SUBJECT" [email protected]

mail -s "SUBJECT" [email protected] < /PATH/FROM/SOMEFILE

COMMAND | mail -s "SUBJECT" [email protected]

<<========================================【at】========================================>>

at命令

功能:

承载未来时间运行的某作业,支持使用作业队列,默认为a队列。

格式:

at [OPTION]... TIME

at -f /PATH/FROM/SOMEFILE  TIME

Ctrl+d 提交作业

作业结果:以邮件形式发送给系统上的当前用户

TIME:

(1)精确时间

HH:MM

MMDD[CC]YY, MM/DD/[CC]YY, DD.MM.[CC]YYor  [CC]YY-MM-DD

tomorrow

(2)相对时间

now+UNIT

minute、hour、day、week

(3)模糊时间

noon 正午12:00

midnight 午夜0:00

teatime 下午16:00

常用选项:

-q QUEUE: at任务作业队列

-f /PATH/FROM/SOMEFILE...TIME: 从指定的文件中读取要运行的任务作业

-l: 查看队列中的待运行作业列表,相当于atq命令

-c AT_JOB_NUM: 查看指定待运行作业的内容

-d: 删除指定作业,相当于atrm

<<========================================【batch】========================================>>

batch命令

功能:

由系统自行选择在资源较为空闲的时间点运行指定的任务

周期性任务计划:cron

CentOS 5:vixie-cron

CentOS 6/7:cronie

周期性任务计划需要服务作为后台支撑,该依靠守护进程:crond

可使用 service crond status 查看crond是否处在运行状态

crond (pid 1492) is running...   //表示服务正在运行

cron任务分为两类:

(1) 系统cron任务:没有默认运行用户身份,所以需要额外指定运行者

配置文件:/etc/crontab

(2) 用户cron任务:由某个用户所提交,默认以提交者身份运行,无需额外指定运行者。

配置文件:/var/spool/cron/USERNAME

cron配置文件中每行定义一个独立的任务

★注意:建议在定义cron任务时,所用到的命令使用绝对路径;如果是脚本,

脚本中的命令需使用绝对路径,或自定义一个拥有完整路径的系统环境变量。

★系统cron一般很少手动去编辑,大多数情况都是定义用户cron

使用vi编辑cron任务,无法检查语法错误,建议使用crontab命令,不建议使用vim命令

配置文件范本:

SHELL=/bin/bash   //定义用哪个shell用来解释运行的任务

PATH=/sbin:/bin:/usr/sbin:/usr/bin   //用来定义任务中要执行命令的路径

MAILTO=root   //表示系统cron任务运行后把邮件发送给哪个用户

HOME=/   //定义当前系统cron自己的家目录

# Fordetails see man 4 crontabs

#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) ORsun,mon,tue,wed,thu,fri,sat

#|  | |  |  |

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

共有7个字段组成:

前5个字段:时间点(周期性任务的时间点)

user-name: 说明以哪个用户的身份运行任务

command to be excuted: 指明要运行的任务

共5个时间点:

分钟:有效取值范围0-59

小时:0-23

日:1-31

月:1-12

周几:0-7

★注意:几月几号与周几,不建议同时使用

时间点表示法:

*  对应时间点有效取值范围内的每个时间点

-  一个特定的连续时间范围:3-7

,  一个离散的时间点: 3,5,7

/#  有效时间范围内的每多少时间,用于指定频率

*/# 在对应的时间位有效取值上每#个时间单位一次

例如:15 8 5 3*   //表示每年3月5日8点15分 *表示周几不做限定

例如:5 20 10 **   //表示每月10日20点05分 后面两个 * 表示不对年和周几做限定

例如:30 18 * *3   //表示每周三的18点30分

例如:0 3 * * *   //表示每天的3点, 后面的三个 * 表示不对年、月、周几做限定

例如:30 * * **  //表示每小时的30分钟运行任务

例如:* * * **   //表示每分钟任务(最小时间单位为分钟)

例如:* */3 * ** /bin/echo "hello"   //表示当每三个小时到达时,这个小时内每一分钟都运行

例如:15 */3 * ** /bin/echo "hello"   //表示每三个小时运行一次,(分钟一定得是有效取值范围)

例如:*/3 * * ** /bin/echo "hello"   //表示每三分钟运行一次后面命令

★注意:对无法等分的数字,无法用这个格式指定,如:并不能精确做到每7分钟一次

例如:5 7 * *1-5 /bin/echo "hello"   //表示周一到周五,每天的7点5运行后面的命令

例如:5 7 * *2,4,6 /bin/echo "hello"  //表示每周二、四、六的7点5分运行后面的命令

思考:

1、如果想实现每8分钟运行一次某任务,如何编写

2、如果想每10秒运行一次某任务,如何编写

用户cron任务定义:

<<========================================【batch】========================================>>

crontab命令

格式:

crontab[-u user] [-l | -r | -e]

-u user: 不是管理自己的cron任务,而是指定的目标用户的cron任务,仅root拥有管理其他用户的cron任务的权限,默认管理自己的

-l list,列出任务

-r remove,移除所有任务(注意:删除一个任务应该通过编辑界面删除行实现)

-e edit,打开编辑界面定义corn任务

crontab -e -u USERNAME

补充性的工具:anacron:

为cron提供了补充机制,在每次开机后检查crontab中的所有任务,是否在过去计划周期内被执行,如果任务没被执行它会尽快启动。

注意:任务运行后的结果,以邮件发送给任务相关用户

(1)、如果不想接收任务执行结果的通知邮件,丢弃邮件通知可使用输出重定向

COMMAND > /dev/null

COMMAND &> /dev/null

COMMAND > /dev/null 2>&1

(2)、对于crontab文件来讲,%有特殊功用;如果crontab中命令需要使用%

要记得对其转义或者使用单引号对其引用

* * * * * /bin/touch /tmp/test-$(date+\%F-\%H-\%M-\%S)

* * * * * /bin/touch /tmp/test-$(date+‘%F-%H-%M-%S‘)

练习:

1、每周一到周六的凌晨3点20分,运行tar命令对/etc/目录进行归档另存,存储位置为/backups/etc-YYYY-MM-DD.tar.xz;

//事先创建好/backups目录,键入 crontab -e 编辑cron任务

//编辑完后使用crontab-l 列出任务

//修改系统时钟,验证corn任务是否被执行

2、每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backups/fstab-YYYY-MM-DD-hh-mm-ss

//使用命令crontab -e 编辑cron任务列表,新增一行任务

//修改时间,验证任务是否被执行

3、每天晚上12点,取得/proc/meminfo文件中所有以S或M开头的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上类似===============分隔线

//事先创建好/statistics目录,然后编辑cron任务文件

//修改系统时间验证任务是否被执行

时间: 2024-11-10 00:56:49

cron任务计划的相关文章

Linux的归档及压缩和Linux的cron时间计划任务

linux的归档及压缩:                  1.节约空间                  2.方便对零散文档的管理    tar集成备份工具:        -c:    创建归档        -x:   释放归档        -f:   指定归档文件名称        -z.-j.-J:调用gz.bz2.xz格式的工具进行处理        -C:   指定释放位置        -P:    保持归档内文件的绝对路劲       -tar  -zcf  备份文件.tar

cron 配置计划任务的书写格式(quartz 时间配置)

一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为 1.秒(0~59) 2.分钟(0~59) 3.小时(0~23)  4.天(月)(0~31,但是你需要考虑你月的天数) 5.月(0~11) 6.天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(1970-2099) 其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符. 由于"月

linux cron 计划任务常用符号总结

[[email protected] ~]# crontab --help crontab: invalid option -- '-' crontab: usage error: unrecognized option usage: crontab [-u user] file crontab [-u user] [ -e | -l | -r ] (default operation is replace, per 1003.2) -e (edit user's crontab) 编辑cron

Linux上的计划at和cron

at命令 使用之前确认atd服务已经启动 [[email protected] tmp]# ps -ef | grep atd root     35241     1  0 16:15 ?        00:00:00 /usr/sbin/atd [[email protected] tmp]# /etc/init.d/atd status    #运行状态查看 atd (pid  35241) is running... 启动命令 [[email protected] tmp]# /etc

创建周期性计划任务cron

创建周期性计划任务cron 目 录 一.周期性任务计划: cron 二.系统计划任务 三.用户创建计划任务 四.控制用户执行计划任务 本篇中主要从具体的实例中说明怎样创建计划任务 一.周期性任务计划: cron (1)计划周期性执行的任务提交给crond,到指定时间会自动运行 系统cron任务:系统维护作业 (2)相关的程序包:默认已安装 使用 rpm –qi cronie  查看相关包具体信息 cronie: 主程序包,提供crond守护进程及相关辅助工具 cronie-anacron: cr

linux任务计划cron、chkconfig工具、systemd管理服务、unit介绍和targe

一. linux任务计划cron 关于cron任务计划功能的操作都是通过crontab这个命令来完成的. 其中常用的选项有: -u :指定某个用户,不加-u选项则为当前用户: /etc/crontab 任务计划的配置文件 前面两行是定义变量,第三行是指发送邮件给谁,然后最后一行有五个点分别对应着五个位,也就是上面的五行,分别表示:1.表示分钟(0-59)2.表示小时(0-23)3.表示日期(1-31)4.表示月份(1-12可以写数字或者英文的简写)5.表示星期(0-6,0或者7表示周日,也可以写

十(6)任务计划 cron、chkconfig工具、systemd管理服务、unit、target

                  Linux 任务计划 cron 任务计划的配置文件: /etc/crontab (图中:MAILTO 表示发送任务计划给谁) crontab: -u:表示指定某个用户,不加-u则为当前用户 -e :表示制定计划任务(进入到编辑模式) -l :列出计划任务 -r: 删除计划任务 进入编辑模式 : crontab -e (编写任务计划crond服务是如果执行一个bash/命令,写它的绝对路径) 指定执行范围:   ( 分范围0-59,时范围0-23,日范围1-31

at/cron计划任务初解

at 计划初解 一.at命令: at [option] TIME常用选项:-V 显示版本信息:-l: 列出指定队列中等待运行的作业:相当于atq-d: 删除指定的作业:相当于atrm-c: 查看具体作业任务-f /path/from/somefile:从指定的文件中读取任务-m:当任务被完成之后,将给用户发送邮件,即使没有标准输出注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户TIME:定义出什么时候进行 at 这项任务的时间HH:MM [YYYY-mm-dd]noon, midn

10.23 linux任务计划cron10.24chkconfig工具10.25 systemd管理服务10.26 unit介绍 10.27 target介绍

- 10.23 linux任务计划cron - 10.24 chkconfig工具 - 10.25 systemd管理服务 - 10.26 unit介绍 - 10.27 target介绍 - 扩展 1. anacron http://blog.csdn.net/strikers1982/article/details/4787226  2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装) http://blog.sina.com.cn/s/blog_46