计划任务工具 cron 的配置和说明 (转载)
作者:北南南北
来自:LinuxSir.Org
摘要:Linux操作系统中,计划任务通常由cron来承担,了解或掌握cron,能为我们管理服务器带来更多的便利,也能省却更多的时间。本文也举了一些简单明了的例子,为了让新手上路方便;
目录
? ? 2.1.1 在Redhat 或 Fedora等RPM包管理的系统的安装;2.1.2 在Slackware系统中的安装;
2.1.3 cron 的开启、停止、重新启动方法; 2.2.1 全局性配置文件;
2.2.2 cron 配置计划任务的书写格式
2.2.3 关于同一时间,同时执行多个任务的定义方法;
2.2.4 对于用户自身的cron 配置文件的说明; 2.1 cron 的安装和启动;
?
2.2 cron 配置文件;
1、计划任务概说;2、cron;
?
3、计划任务的应用范围;
4、关于本文;
5、后记;
6、参考文档;
7、相关文档;
++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++
1、计划任务概说;
计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在Linux中,我们经常用到 crond 服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的作务。比如我们可以在配置文件中约定每天早上4点,对httpd 服务器重新启动,这就是一个计划任务;
下面我们先来说说cron;
2、cron;
在Linux系统中,计划任务一般是由cron承担,我们可以把cron设置为开机时自动启动。cron启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件),然后cron会根据命令和执行时间来按时来调用度工作任务。
2.1 cron 的安装和启动;
在一般情况下,cron都是系统默认安装的,我们要学会查看软件包是否已经安装;
2.1.1 在Redhat 或 Fedora等RPM包管理的系统的安装;
判断系统是否已经安装cron相关的包
Fedora 5.0 系统的情况;
其它版本的Fedora及Redhat的系统和这相似;
?
[root@localhost cron.daily]# more httpd.sh/etc/init.d/httpd restart
?
如果我想在每天5点20分下载FC5的镜像,可以再创建一个文件fc5down.sh
?
[root@localhost cron.daily]# more fc5down.sh/usr/bin/wget? http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso
?
然后我们重新启动一下crond就行了;
?
[root@localhost cron.daily]# pkill crond
[root@localhost cron.daily]# prep crond
[root@localhost cron.daily]# crond&
?
注意:我只是想说明一下,在同一时间 执行多个计划任务的简单用法,并不是有意教给您每天早上都下载FC5的映像。我举这个例子是为了初学者了解这个功能。如果您有好多的任务在某一时刻执行,那就自己写脚本文件。放在/etc目录下的cron.hourly 、cron.daily 、cron.weekly 、cron.monthly 目录中。凡是放进这些目录的可执行脚本,都能在约定的时间内准确执行。每个目录有每个目录的用途;
2.2.4 对于用户自身的cron 配置文件的说明;
每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般的情况下,在Fedora和Redhat的发行版,我们编辑好用户的cron配置文件保存退出后,系统会自动就存放于/var/spool/cron/目录中,文件以用户名命名。在Slackware中是位于/var/spool/cron/crontabs/目录中。其它的发行版都差不多,有点类似。自己找找吧;查看用户的计划任务是crontab -l
?
crontab -e? 注:编辑用户的cron配置文件;
crontab -l? 注:查看用户的计划任务;
?
比如我用beinan用户来运行crontab -e ;
?
[beinan@localhost ~]$ id 注:判断所用用户身份;
uid=500(beinan) gid=500(beinan) groups=500(beinan)
[beinan@localhost ~]$ crontab -e 注:编辑用户beinan的计划任务;
?
我们在里面定义一个任务;
?
40 20 * * *? /usr/bin/wget? http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso
?
保存退出后,我们用下面的命令来查看beinan用户的计划任务;
?
[beinan@localhost ~]$ crontab -l
40 20 * * *? /usr/bin/wget? http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso
?
配置好后,我们还要重新启动crond服务器,每个用户cron配置文件的改动都得重新启动crond服务器;前面已经说过了,这里省略;值得注意的是重启crond服务器,需要root权限,您可以用su命令切换到root 用户,然后再来重启crond;
在Fedora或Redhat等以RPM包管理的发行版中;
?
[beinan@localhost ~]$ su
口令:
[root@localhost beinan]# /etc/init.d/crond restart
停止 crond:?????????????????????????????????????????????? [确定]
启动 crond:?????????????????????????????????????????????? [确定]
?
也可以先杀死crond,再运行crond命令的办法来启动;
?
[root@localhost beinan]# pkill crond
[root@localhost beinan]# pgrep crond
[root@localhost beinan]# /usr/sbin/crond
[root@localhost beinan]# pgrep crond
6664
?
3、计划任务的应用范围;
计划任务主要是让系统自动完成一些工作。比如我们可以让系统自动在某一时刻清理或备份httpd服务器的日志,然后重新启动httpd服务器,这对网络管理员来说是很重要的。也可以让系统自动清空位于/tmp目录的垃圾文件。
另外值得一提的是,LinuxSir.Org 有很多子站,每个子站都有RSS,能让这些站点的RSS相互投递,也是用cron来完成,比如是在早上4点左右开始执行这个任务。这是一个极为耗费资源的过程,如果不是放在在线人少的时候,基本无法完成,所以只能放在早上进行。作为SIR的管理员,不可能每天早上4点起来点鼠标来完成这些事吧。所以最好的办法就是通过cron来自动运行,以在服务器最清闲的时候来完成这项工作;
4、关于本文;
本文是关于计划任务的,本来想把有关计划任务的内容都写在一个文档中,由于在写文档之前没有准备好,所以只写了一个cron ;本文可能会在近期调整一下,加入at等工具的用法等;
5、后记;
这篇后记不用写了,我在本文档修改期间写了进程管理的文档;
有一件趣事得提一提,昨天查看lumaqq.inuxsir.org 的 google 广告收入,目前大约是70$左右,这个广告帐户,目前我是代luma兄管理的。现在看来广告是比较少。。。。。从一月份到现在,半年快过去了,才仅仅 70$。
?
?
?
我在64服务器上写的第一个例子
?
1.在/var/spool/cron 建立 root 文件
?
2.?输入内容 ?*/1 * * * * /home/diaoyf/testWTEjb/testejb.sh &>/home/diaoyf/huxl.properties
?
?标示每分钟执行一次 吧日志放在 huxl.properties 中
?
3.重启 cron :service crond stop ,service crond start
?
4. 观察日志 发现 已经执行了!!
转载:
?
http://www.linuxsir.org/main/?q=node/209