首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

计划任打工具 cron 的配置和说明 (转载)

2012-08-28 
计划任务工具 cron 的配置和说明 (转载)作者:北南南北来自:LinuxSir.Org摘要:Linux操作系统中,计划任务通

计划任务工具 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

热点排行