计划任务文件 linux,Linux之任务计划

一、单次任务计划

二、周期性任务计划

一、单次任务计划

命令:

batch:系统空闲时自动执行,不常用

at:可以使用相对时间、绝对时间或模糊时间,例如

相对时间:at now+3min,表示3分钟后执行

绝对时间:at 11:30,表示在11:30执行

模糊时间:at noon | midnight | teatime,表示在对应模糊时间执行

------------------------------------------

at常用选项:

-l:查看等待执行的任务,同atq

-d: 删除未执行的任务,同atrm

-f:指定脚本文件

------------------------------------------

1、使用at计划任务[root@TESTHOST SPECS]# at now+3min    #3分钟后执行的任务

at> cat /etc/passwd    #任务1

at> cat /etc/shadow    #任务2

at> date    #任务3

at> ls /scripts/    #任务4

at>     #结束Ctrl+d提交任务

job 3 at 2015-04-24 08:20

You have mail in /var/spool/mail/root    #执行结果以邮件方式发送给任务发起者

2、查看邮件,使用命令mail[root@TESTHOST SPECS]# mail    #使用mail命令查看邮件

Heirloom Mail version 12.4 7/29/08.  Type ? for help.

"/var/spool/mail/root": 3 messages    #下列信息最前面的数字1为邮件编号

>   1 root                  Fri Apr 24 08:17  61/2298  "Output from your job        "

2 root                  Fri Apr 24 08:18  15/524   "Output from your job        "

3 root                  Fri Apr 24 08:20  62/2327  "Output from your job        "

& 1    #提示符&后输入邮件编号,查看任务执行结果

Message  1:

From root@TESTHOST.localdomain  Fri Apr 24 08:17:14 2015

Return-Path: 

X-Original-To: root

Delivered-To: root@TESTHOST.localdomain

Subject: Output from your job        1

To: root@TESTHOST.localdomain

Date: Fri, 24 Apr 2015 08:17:14 +0800 (CST)

From: root@TESTHOST.localdomain (root)

Status: RO

#信息太多,这里略去

##################################################

New mail has arrived.    #提示有新邮件到达

Loaded 1 new message

N  4 root                  Fri Apr 24 19:29  31/571   "Output from your job        "

& q    #输入q回车,退出mail

Held 4 messages in /var/spool/mail/root    #告诉root用户有4条信息

[root@TESTHOST SPECS]#

3、查看等待执行的任务,使用命令at -l或atq[root@TESTHOST SPECS]# at -l

62015-04-24 19:41 a root    #数字6为任务编号

[root@TESTHOST SPECS]# atq

62015-04-24 19:41 a root

4、删除未执行的任务,使用命令at –d或atrm[root@TESTHOST SPECS]# at now+3min    #新建一个任务计划

at> ls /var

at> 

job 7 at 2015-04-24 19:48

[root@TESTHOST SPECS]# at -l    #查看待执行任务,任务编号为7

72015-04-24 19:48 a root

[root@TESTHOST SPECS]# date    #查看当前系统时间

Fri Apr 24 19:45:44 CST 2015

[root@TESTHOST SPECS]# at -d 7    #删除未执行的任务,at -d #任务编号

[root@TESTHOST SPECS]# at -l    #任务已删除

5、计划执行脚本,使用命令at –f /path/to/scriptfile TIME

注:使用at命令,Ctrl+d提交任务出现如下提示,则证明计划任务依赖的atd服务未启动Can't open /var/run/atd.pid to signal atd. No atd running?

查看atd服务状态,并启动[root@TESTHOST SPECS]# /etc/init.d/atd status    #查看服务状态

atd is stopped

[root@TESTHOST SPECS]# /etc/init.d/atd start    #启用服务

Starting atd:                                              [  OK  ]

[root@TESTHOST SPECS]# /etc/init.d/atd status    #服务已运行

atd (pid  34529) is running...

二、周期性任务计划

1、依赖服务:crond[root@TESTHOST SPECS]# service crond status

crond (pid  1222) 正在运行...

2、crond配置文件

2.1、 系统crond配置文件及格式:/etc/crontab[root@TESTHOST ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root    #任务执行结果发送邮件给用户

HOME=/

# For details 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) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed    #星号后分别接用户、任务命令

2.2、用户crond配置文件及格式:/var/spool/cron/USERNAME[root@TESTHOST ~]# crontab -e    #编辑当前用户的crond配置文件

no crontab for root - using an empty one    #编辑后,保存退出,提示为root用户新建crond配置文件

crontab: installing new crontab

[root@TESTHOST ~]# ls /var/spool/cron/    #用户crond配置文件,文件名同用户名

root

[root@TESTHOST ~]# cat /var/spool/cron/root

# 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

# |  |  |  |  |

# *  *  *  *  * command to be executed    #星号后接任务命令

*/2 * * * *  ls /var

注:系统默认PATH=/bin:/sbin:/usr/bin:/usr/sbin,计划任务中使用的命令不在系统默认PATH中时,则使用绝对路径;使用脚本时,在脚本中自行定义PATH

2.3、配置文件周期格式含义

支持通配符:

*:相应时间点的所有有效取值,例如3 * * * *    #每小时第3分

3 4 * * *     #每天的4点03分

3 4 5 * *    #每月5号的4点03分

0 0 * * * [ $[($(date +%s)/86400)%3] -eq 0 ] && /usr/sbin/ntpdate 10.1.1.120 &> /dev/null    #每3天执行一次时间同步

,:离散取值,例如3,15,27,39,51 * * * *    #每12分钟

/:定义指定取值范围内的频率,例如

*/2 * * * *    #每2分钟

17 */3 * * *    #每3小时的第17分

-:连续取值,例如

17 8-20/3 * * *    #每天的8时-20时之间的每小时的第17分

以秒单位执行任务计划:

方法1:

* * * * * sleep 30 && /usr/bin/unison webdata    #每30秒

方法2:

* * * * * for i in 0 1 2; do some_job && sleep 15; done; some_job    #每15秒,循环次数为(60/n-1)

* * * * * for i in {1..5}; do some_job && sleep 10; done; some_job    #每10秒

注意:使用%时要加反斜线。例如:

1 2 3 * * touch ~/file_$(date +\%Y\%m\%d).txt

但使用单引号后也可以不再使用反斜线,例如:

1 2 3 * * touch ~/file_$(date '+%Y%m%d').txt

2.4、拒收邮件

方法1:配置文件中定义MAILTO=’’

方法2:将命令输出信息重定向    &> /dev/null或> /dev/null 2>&1    #bash下,这两个重定向等价

3、crontab命令

常用选项:

-e:编辑任务计划

-r:移除配置文件,删除部分任务计划使用-e编辑

-l:列出周期性任务

-u USERNAME:    #管理员可用的选项,可结合选项-e,-r,-l编辑、删除、查看其他用户的任务

博主的归纳总结质量都很高,文章的知识结构划分更容易阅读和理解,谢谢哈!

单击图片后放大查看

2c279310478f71e24e032339607db252.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值