linux基本命令之计划任务

转载 2013年12月03日 15:24:23
小弟不才,至今还在用redhat5.8,就以此为例,RHEL5系统中默认安装了at、vixie-cron软件包!可以通过atd和crond这两个系统服务实现一次性和周期性任务计划功能!对应的命令是at和crontab!
 
这里我们只说一下at一次性任务计划和crontab周期性任务设置
 
一:at一次性任务设置
1.命令格式:
at[参数][时间]
2.命令功能:
在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd进程(
ps -ef | grep atd查看, 开启用/etc/init.d/atd start or restart; 开机即启动则需要运行chkconfig --       level 2345 atd on)
-m 当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
-I atq的别名
-d atrm的别名
-v 显示任务将被执行的时间
-c 打印任务的内容到标准输出
-V 显示版本信息
-q<列队> 使用指定的列队
-f<文件> 从指定文件读入任务而不是从标准输入读入
-t<时间参数> 以时间参数的形式提交要运行的任务 
at允许使用一套相当复杂的指定时间的方法。他能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的 词语来指定时间。用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 也能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须跟在指定时间的后面。 上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,究竟是几天,还是几小时,等等。 更有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
TIME:时间格式,这里可以定义出什么时候要进行 at 这项任务的时间,格式有:
HH:MM
ex> 04:00
在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此任务。
HH:MM YYYY-MM-DD
ex> 04:00 2009-03-17
强制规定在某年某月的某一天的特殊时刻进行该项任务
HH:MM[am|pm] [Month] [Date]
ex> 04pm March 17
也是一样,强制在某年某月某日的某时刻进行该项任务
HH:MM[am|pm] + number [minutes|hours|days|weeks]
ex> now + 5 minutes
ex> 04pm + 3 days
就是说,在某个时间点再加几个时间后才进行该项任务。
顾名思义只能执行一次、前提是对应的atd服务已经启动   例:确认系统服务已经运行、并设置atd服务在运行级别3、5中自动启动 [root@localhost ~] # service atd status #看服务状态 [root@localhost ~] # service atd start [root@localhost ~] # chkconfig --level 35 atd on #设置运行级别   例:使用date命令确认当前系统时间、并设置在2013年12月1日的14:55分自动执行以下任务计划:统计该时间点系统中由root用户运行的进程的数量、并将该数值保存到/tmp/ps.root文件中 [root@localhost ~] # date  //先查看以下当前系统的时间 [root@localhost ~] # at 14:55 2013-12-01 at> pgrep -U root | wc -l > /tmp/ps.root at> <EOT>                 //任务设置完毕后按Ctrl+D组合键提交 job 1 at 2013-12-01 14:55 [root@localhost ~] # cat /tmp/ps.root     //等过了计划时间后验证结果 63      //显示的进程数   例:设置当天17:30自动关闭当前系统 [root@localhost ~] # at 17:30 at> shutdown -h now at> <ETO>     查询当前系统中设置的at计划任务列表 [root@localhost ~] # atq 或者: [root@localhost ~]at -l  删除指定任务编号的at任务 [root@localhost ~] # atrm number  (删除前先查询一下编号)   二:crontab周期性任务设置   顾名思义、周期性的执行、大大减少管理员的负担!比如备份、必须使用的!前提不变、crond服务必须启动!   由于服务必须启动、所以要设置在3、5级别中自启动 [root@localhost ~] # service crond status #查看服务状态 [root@localhost ~] # chkconfig --level 35 crond on #设置运行级别   使用crontab命令管理用户的计划任务     -e:编辑计划任务列表   -u:指定所管理的计划任务属于哪个用户,默认针对当前用户、一般只有root用户有权限设置   -l:列表显示任务计划   -r:删除任务计划列表 [root@localhost ~] # crontab -e打开任务编辑界面(与vi相同) * * * * * *  run_hurly_cmd …… 50 7 * * *   ps aux | wc -l > /aa.txt 每一行有六个数据字段、这里的五个*号各自的含义是:分、时、日、月、周 第二条带数字的含义就是、每天的7:50执行后面的命令   此外还有一些特殊符号 “*”      :表示任意时间、如果分钟没有定义表示每一分钟都执行 “-”      :表示一个连续的时间范围,如1-4表示整数1、2、3、4 “,”    :表示一个间隔的不连续范围,如3,4,6,8 “/”       :用来指定间隔频率,如在日期字段“*/3”表示每隔3天   例:由root用户设置一份crontab计划任务列表,完成以下任务   每天早上7:50自动启动sshd服务,22:50关闭sshd服务 每隔五天清空一次FTP服务器公共目录/var/ftp/pub中的数据 每周六的7:30重启系统中的httpd服务 每周一、三、五的下午17:30,使用tar命令备份/etc/httpd目录 [root@localhost ~] # crontab  -e 50 7 * * * /sbin/serice  sshd  start 50 22 * * * /sbin/service  sshd  stop * * */5 * * /bin/rm  -rf  /var/ftp/pub/* 30 7 * * 6 /sbin/service  httpd  restart 30 17 * * 1,3,5  /bin/tar  jcvf  httpdconf.tar.bz2  /etc/httpd   例:为jerry用户设置计划任务,在每周日晚上23:55将/etc/passwd文件的内容复制到宿主目录中,保存为pwd.txt文件 [root@localhost ~] # crontab -e -u jerry 55 23 * * 7  /bin/cp  /etc/passwd  /home/jerry/pwd.txt   查看用户的计划任务列表   例:确认root用户的计划任务列表的内容 [root@localhost ~] # crontab -l   例:确认jerry用户的计划任务列表的内容 [root@localhost ~] # crontab -l -u jerry   例:使用jerry用户登录后、查看并删除自己的计划任务列表 [jerry@localhost ~] $ crontab -l             //查看 [jerry@localhost ~] $ crontab -r            //删除 [jerry@localhost ~] $ crontab -l            //再次查看验证   这是简单的任务计划、实际生活中的任务计划都是加载shell脚本来实现的!下一节说一下shell脚本的简单编写!
3.命令参数:

linux下的计划任务---crontab命令详解

1、为什么会用crontab命令? crontab命令的功能是在一定的时间间隔调度一些命令的执行。linux中实现定时的任务,像实现某个脚本请求或定时实现某个http请求时,我们可以用cront...

Linux计划任务Crond命令用法

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

【Unix/Linux】【命令】【计划任务工具】crontab

CTRL + C —— 终止当前在终端窗口中运行的命令或脚本。

Linux下的计划任务:crontab命令详解

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

Linux设定计划任务Crontab命令用法

类似Windows平台下的计划任务,Linux下使用cron服务来实现一些特定任务的定时执行。目前流行的系统都已默认安装了cron并随机启动。 cron服务相关命令: /sbin/se...

Linux的计划任务(at命令和cron工具)

【1】at 在windows系统中,windows提供了计划任务这一功能,在控制面板 -性能与维护 -任务计划, 它的功能就是安排自动运行的任务。 通过'添加任务计划'的一步步引导,则可建立一个...

Linux学习笔记--计划任务at-crontab命令

#at 20:00 > echo `date` > tmp/date.txt #输入要执行的命令 按Ctrl+D结束 #at 20:00 2016:10:00 #at ...
  • xin_y
  • xin_y
  • 2016年12月02日 23:41
  • 179

Linux计划任务命令之crontab 命令

crontab这个命令非常实用也很重要,在使用Linux过程中经常会用到。 在安装完Linux后,系统默认会安装此服务工具。如果没有查到有该工具,可以自行安装。然后使用which cront...
  • hpf247
  • hpf247
  • 2017年12月02日 23:53
  • 15

[每日一命令] Linux中的计划任务at命令的用法

Linux中的计划任务(一次性定时计划任务)的at命令的用法 1.命令格式: at[参数][时间] 2.命令功能: 在一个指定的时间执行一个指定任务,只能执行一次,且需要开启a...

Linux计划任务

  • 2012年11月05日 11:46
  • 40KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux基本命令之计划任务
举报原因:
原因补充:

(最多只允许输入30个字)