一、什么是cron
在LINUX中,周期执行或者定时任务一般由cron这个守护进程来处理,这个进程常驻后台,定期会去读取其配置文件,完成配置文件中所描述的操作。
二、如何启动与修改cron服务
service cron start //启动服务
service cron stop //关闭服务
service cron restart //重启服务
service cron reload //重新载入配置
service cron status //查看服务状态
三、cron的配置文件:
cron 的配置文件主要有四种:
(1)/etc/crontab 这是root 用户访问的配置文件,root用户可以在其中控制自己以及其他任务的定时任务。
(2)/var/spool/cron/crontabs/* 这是每个用户(包括root)都会有的一个配置文件,可以直接通过vim或者其他编辑其打开来加入对应的定时任务。
(3)/etc/ cron.d /etc /cron.hourly /etc / cron.daily /etc /cron.weekly /etc /cron.monthly 这些是文件夹,需要定期执行的可执行文件放在里面,注意是可执行文件,具体是每天或者每周几点去执行,取决于/etc/crontab中的配置,这个实际上是/etc/crontab 的一个延伸项。这是四个文件夹,如果需要建立按小时,按天,按周,按月执行的任务,可以可执行的文件(.sh)放入其中。
(4)/etc/cron.d 目录 放置的也是负荷cron语法规则的文件。
四、启动定时任务的方法:
(1)启动root用户的定时任务:
- 直接在/etc/crontab中加入任务,任务的描述方法见后文
- 切换到root 用户,在shell中执行,crontab -e 可以直接编辑任务,其编辑的实际上就是/var/spool/cron/crontabs/root这个文件。
- 直接使用vim或者nano等编辑器编辑/var/spool/cron/crontabs/root这个文件。
(2)启动其他用户(非root)的定时任务:
- 直接在/etc/crontab中加入任务,可以设置任务所属的用户。
- 直接使用vim、nano等编辑器编辑/var/spool/cron/crontabs/username这个文件。
- 在username用户下,在shell中执行,crontab -e 可以直接编辑任务,其编辑的实际上就是/var/spool/cron/crontabs/username这个文件。
(3)加入每小时,每天,每周,每月执行一次的任务:
在/etc/ cron.d /etc /cron.hourly /etc /cron.daily /etc /cron.weekly /etc /cron.monthly 文件夹下写.sh脚本来设置任务,需要注意的是,具体是每天或者每周几点去执行,取决于/etc/crontab中的配置,这个实际上是/etc/crontab 的一个延伸项。也就是在/etc/crontab种设置了三个任务,每小时,每天,每周,每月的一个具体时间去执行/etc /cron.weekly,/etc /cron.monthly ……文件夹内的所有可执行文件。
补充:
test –x 是测试某个文件是否是可执行文件,返回值是$?,真为0,假为1。
Acommand || Bcommand 若Acommand执行的结果返回假则执行Bcommand
Acommand && Bcommand 若Acommand执行的结果返回真则执行Bcommand