您的位置:首页 > 运维架构 > Linux

linux基本命令之计划任务

2012-01-08 01:01 387 查看
RHEL5系统中默认安装了at、vixie-cron软件包!可以通过atd和crond这两个系统服务实现一次性和周期性任务计划功能!对应的命令是at和crontab!

这里我们只说一下at一次性任务计划和crontab周期性任务设置

一:at一次性任务设置

顾名思义只能执行一次、前提是对应的atd服务已经启动
例:确认系统服务已经运行、并设置atd服务在运行级别3、5中自动启动

[root@localhost ~] # service atd status

[root@localhost ~] # service atd start

[root@localhost ~] # chkconfig --level 35 atd on
例:使用date命令确认当前系统时间、并设置在2009年5月18日的14:55分自动执行以下任务计划:统计该时间点系统中由root用户运行的进程的数量、并将该数值保存到/tmp/ps.root文件中

[root@localhost ~] # date //先查看以下当前系统的时间

[root@localhost ~] # at 14:55 2009-05-18

at> pgrep -U root | wc -l > /tmp/ps.root

at> <EOT> //任务设置完毕后按Ctrl+D组合键提交

job 1 at 2009-05-18 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

删除指定任务编号的at任务

[root@localhost ~] # atrm 2 (删除前使用atq查询一下编号)
二: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脚本的简单编写!
本文出自 “无愧于心” 博客,请务必保留此出处http://wycsy.blog.51cto.com/3709381/759889
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: