一、crontab
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
1.1 /etc/crontab 系统调度配置文件
使用vim /etc/crontab命令会出现如下内容:
前三行是用来配置crond任务运行的环境变量
- 第一行SHELL变量指定了系统要使用哪个shell,这里是bash;
- 第二行PATH变量指定了系统执行 命令的路径;
- 第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务 执行信息给用户。
其他行的含义:
minute
: 表示分钟,可以是从0到59之间的任何整数。
hour
:表示小时,可以是从0到23之间的任何整数。
day
:表示日期,可以是从1到31之间的任何整数。
month
:表示月份,可以是从1到12之间的任何整数。
week
:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command
:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
星号(*)
:代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。逗号(,)
:可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”中杠(-)
:可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”正斜线(/)
:可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使
用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
1.2 其他文件
/etc/cron.deny
该文件中所列用户不允许使用crontab命令
/etc/cron.allow
该文件中所列用户允许使用crontab命令
/var/spool/cron/
所有用户crontab文件存放的目录,以用户名命名
/etc/crontab
文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command
;
与在明亮行使用crontab -e
的区别在于,crontab -e
是用户级别的,/etc/crontab
文件是系统级别的。
1.3 crond服务
安装crontab:
yum install crontabs
服务操作说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //启动服务
1.4 crontab命令参数
- -u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
- file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
- -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
- -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
- -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
- -i:在删除用户的crontab文件时给确认提示。