赞
踩
Linux系统中的计划任务可分为两类:
用户计划任务,文件路径为:/var/spool/cron/username
系统计划任务,文件路径为:/etc/cron*(文件/ect/crontab和/etc/cron.d这个目录下的文件)
"crond"是计划任务的守护进程,这个计划任务是每分钟都会扫描一次所有的计划任务(用户和系统的计划任务)。
使用:crontab -e命令可直接进入编写用户计划任务的文件
#crontab -u <-l, -r, -e>
-u:指定一个用户
-l:列出某个用户的任务计划
-r:删除某个用户的任务
-e:编辑某个用户的任务
注意:这个命令只是编写的是所登录用户的计划任务,此计划任务的位置在:/var/spool/cron/username这目录下
其中/etc/contab这个计划任务的文件说明为:
一定要理解这个文件的内容:尤其是SHELL、PATH、MAILTO这三个参数的作用
SHELL:是指定执行计划任务时的解释器为:/bin/bash。
PATH:是指在执行计划任务时,找寻执行命令的路径。
MAILTO:是指计划任务中的一条任务执行成功后的默认邮件接收人。(可在此全局计划任务中指定邮件收件用户)
一定要注意:PATH这个参数,若计划任务中的某条命令不在PATH路径下,就会使计划任务在任务执行后,向邮件发送找不到命令的提示,而不是任务执行成功的提示。
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
例子:先学习一个命令:ntpdate——这个命令是同步时间(当服务器的时间不一致时,可使用此命令使服务器的时间一致)
这个命令的文件绝对路径为:/usr/sbin/ntpdate
命令格式:ntpdate 所同步的时间的另一台服务IP地址
eg:ntpdate 192.168.162.122
执行此命令后,执行此命令的服务器时间就会与162.122的这台服务器时间一致了,同时也会有以下信息显示命令执行成功。
若为使两台服务器的时间每分钟都校准一次,就可以将此命令写入到计划任务中去。
此时就要主要这个命令的执行路径,是否在PATH路径中(或是否在计划任务执行时添加的是绝对路径)如果没有添加该命令的绝对路径后,执行该计划的用户邮件就会收到以下文件的内容提示:
找不到该命令
所以在执行计划任务时,要注意任务中的命令是否属于PATH路径中的,若不属于则将该命令的绝对路径添加到PATH中,或者写该命令的绝对路径。
这个文件有一个命令,意思是每小时的01分执行一次,每小时01分的时候执行一次/etc/cron.d下的所有文件。
在这个目录下还有些
以cron.*的目录是以:(cron.hourly)小时、(cron.daily)天、(cron.weekly)星期、(cron.monthly)月这四个时间的全局计划任务。(绿色是代表:可执行文件-脚本文件)
其中".hourly"和“.daily”的计划任务只要写进去就会被执行,但“.weekly”和".monthly"这两个计划任务的执行需要设置才会执行。
首先来认识一下这四个目录中的文件(目录中的文件命名很有含义)
例子:“.hourly”目录中有一个以“0(数字-零)”开头的文件,这个数字是代表脚本文件执行的优先级。
数字0越多这代表这个文件执行的优先级越高。
在Linux系统中使用:
①”which“命令可查询命令文件的绝对路径。
②“whatis” 命令也可查询命令简单的描述。注意:这个命令的查询结果是根据数据库来查询的,而且这个数据库是每天都会更新的。如果系统刚装的时候使用此命令查询帮助是查询不到的。 数据库的具体的更新时间,就是依据man-db.cron这个文件。
可使用“mandb”这个命令来手动更新man帮助的数据库内容,而不需要等到一天之后才会更新。
③“--help”命令来查询命令帮助文档
④“man”命令查询帮助文档
⑤“info”命令也可插叙命令的帮助文档
仅拒绝,其他用户都允许
一个用户写一行,如果将用户写入该文件,则这个用户就无法创建用户的计划任务了
如果将用户user1写入此文件,则该用户就无法创建计划任务
仅允许,其他用户都拒绝
这个文件在Linux系统本来是不存在,但可以创建此文件(cron.deny和cron.allow这两个文件只要存在一个就可以了)
注意:当/etc/cron.deny和/etc/cron.allow这两个文件中都写有同一个用户,是cron.allow这个文件中的内容先生效。
仅是自己的学习记录,有错误的地方欢迎各位指出。一起共勉
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。