[原创]Linux/Unix上的“计划任务”_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3373 | 回复: 0   主题: [原创]Linux/Unix上的“计划任务”        下一篇 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2014-6-29 10:48:49 | [全部帖] [楼主帖] 楼主

crontab是Unix/Linux上的“计划任务”,可以在指定的时间,以指定的身份,运行指定的任务。
crontab有两级,一个是系统级的,一个是用户级的。
系统级的配置文件在:/etc/crontab,用vi打开,里面会有些环境变量的设置,包括PATH在内,以便cron守护进程查找指定的程序。
最需要关心的是下面的内容,每行一个任务,具体的格式是:

北京联动北方科技有限公司
比如:

0 1 * * * root ls –l /var/log > /root/ls.txt


表示:
(1)每天1点钟开始执行命令
(2)以root用户执行命令
(3)执行的命令为:ls –l /var/log > /root/ls.txt
说明:
(1)*号表示所有,上面的例子中,日、月、星期都是星号,表示每天都执行,如果每月一号两点钟执行一次,则时间部分变为:

0 2 1 * *


(2)如果是周期性的执行,比如每5分钟执行一次,则加上一个“/”,比如:

*/5 * * * *


再如每周一零点定时执行: 

0 0 * * 1


如果设置为这样是什么效果呢? 

* * * * 1


那就麻烦了,周一每分钟执行一次。
(3)命令部分,可以带空格、重定向等字符,但最好用绝对路径,因为PATH设置不同,可能会找不到你指定的程序,并且cron只执行这个命令,并不返回执行的结果。
查看crontab是否执行,最好看/var/log/cron,所有执行过的命令,都会在里面显示出来: 

# tail -n 20 /var/log/cron
Jun 28 08:42:01 638065 CROND[27988]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 09:42:01 638065 CROND[32375]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 10:42:01 638065 CROND[4424]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 11:42:25 638065 crond[1351]: (CRON) STARTUP (1.4.4)
Jun 28 11:42:25 638065 crond[1351]: (CRON) INFO (running with inotify support)
Jun 28 12:42:01 638065 CROND[1194]: (root) CMD (/bin/ls –l /var/log)
Jun 28 12:38:49 638065 crond[1182]: (CRON) STARTUP (1.4.4)
Jun 28 12:38:49 638065 crond[1182]: (CRON) INFO (running with inotify support)
Jun 28 12:42:01 638065 CROND[1194]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 13:42:01 638065 CROND[1206]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 14:42:02 638065 CROND[1217]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 15:42:01 638065 CROND[1228]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 16:42:01 638065 CROND[1239]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 17:42:01 638065 CROND[1250]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 18:42:01 638065 CROND[1261]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 19:42:01 638065 CROND[1294]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 20:42:01 638065 CROND[1307]: (root) CMD (run-parts /etc/cron.hourly)
Jun 28 21:42:01 638065 CROND[1336]: (root) CMD (run-parts /etc/cron.hourly)


用户级的比较常用,普通用户登录后,运行contab –e,会出来一个vi的编译框,里面也许什么也没有,这是正常现象。
格式跟/etc/crontab相比,就少一个“用户名”段,其他相同,还是上面的例子,每天一点钟执行一下ls:

0 1 * * * ls –l /var/log > /root/ls.txt


注意没有了用户名。
查看计划任务,可以用crontab –l命令:

% crontab -l
0 1 * * * ls –l /var/log > /root/ls.txt


超级用户可以查看其他用户的任务:

crontab –u aa –l


注意:系统级的计划任务不会出现在crontab –l中。

该贴由hui.chen转至本版2014-11-5 17:04:58




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论