第六章 系统管理工具(续四)

第六章 系统管理工具(续四)6.13 使用cron命令 (设置定时器)cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。cron 假

欢迎大家来到IT世界,在知识的湖畔探索吧!

6.13 使用cron命令 (设置定时器)

cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。

cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。

要使用 cron 服务,你必须安装了 vixie-cron RPM 软件包,而且必须在运行 crond 服务。要判定该软件包是否已安装,使用 rpm -q vixie-cron 命令。要判定该服务是否在运行,使用 /sbin/service crond status 命令。

1.调度定期重复执行的任务

2.使用crontab命令去编辑、安排和查看调度的工作

3.语法:

crontab [-u user] file

crontab [-l |-r|-e]

选项说明:

-u <user> 为user建立任务调度工作。

-e 编辑当前调度表文件,使用指定可视化或编辑器环境变量的编辑器。

-l 列出当前调度表文件内容。

-v 删除当前调度表文件。

调度表存储在/var/spool/cron文件中, 非特权用户不能读取此文件。

4. cron调度工作任务需要crond守护进程在系统后台上运行

6.14 用户的crontab文件格式

根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在 /var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令,使用由 VISUAL 或 EDITOR 环境变量指定的编辑器来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。

1. 命令格式

30 6 * * 0 /home/joe/ mai/ moon.sh

分 时 日 月 周 命令

(0-59)(0-23) (1-12) (0-6)

上面记录的文件被一些数字或空格分开。

2. 以下是正确的文件数值范围:

minute 0-59

hour 0-23

pay of month 1-31

month 1-12或Jan、Feb、mar等。

Day of week 0-7, 即或0或7=sundy, 1=Monday,等;或Sun, Mon,Tue。

多个数值被用逗号分开,一个“*”号代表字段上的所有正确数值。

3. 一名用户的crontab文件看起来像以下:

# min hour day month dow command

0 4 * * 1. 3. 5 find -name core -type f | xargs rm -f{}

13 15 13 * 5 mail –s “boo”=$ LOGNAME <boo.txt

man 5 crontab提供关于crontas格式的讨论(man crontab命令无效)

6.15 系统crontab 文件

1.与用户的crontab文件格式不同。

与用户任务调度文件相比,/etc/crontab文件的格式和/etc/cron.d/目录内的文件格式都不同。第六个字段是一个用户名,它被用来执行第七字段的命令。

2.主要任务调度配置文件/erc/ crontab运行以下目录内的可执行脚本:

·/etc/ cron.hourly

·/etc/ cron.daily

·/etc/cron.weekly

·/etc/cron.monthly

这些文件都是普通的run-parts shell命令脚本。这个脚本有一个变量、一个目录名,并调用目录内的所有程序( 在/usr/ bin目录内查找run-parts,脚本,且有不在线文档)。

3. 以下是/etc/ crontab文件的内容:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

前四行是用来配置 cron 任务运行环境的变量。SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);PATH 变量定义用来执行命令的路径。cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。如果 MAILTO 变量被定义为空白字符串(MAILTO=””),电子邮件就不会被寄出。HOME 变量可以用来设置在执行命令或脚本时使用的主目录。

因此,在每天4:02,/etc/ cron.daily内可执行的所有文件作为root被运行。一个默认的Red Hat Linux安装的cron.daily目录包含的脚本将去更新slocate和whatis命令数据库、清理临时目录并去执行其他内务处理任务。

4./etc/cron.d/目录包含附加的系统任务调度文件

cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/34376.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信