欢迎大家来到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