Centos7 设置定时任务
在centos上最常用的定时任务应该就是crontab了,在经过各种度娘之后有三种方式实现定时任务的方法,但是所用到的场景有所不同
这里也直讲最常用的crontab,主要其他两种我也没看也没测试
关于crontab和crond
用到crontab那么就一定要知道crond,crond和crontab是不可分割的,crond我的理解是一个守护进程,或者说这才是我们定时任务的核心,crontab是一个编辑或者说是管理定时任务的工具
crontab我的理解就是crond服务处于启动状态,这个服务会默认每分钟去检测是否有需要执行的定时任务,所以crond不能守护秒级定时任务。而这个任务的具体内容是通过crontab来管理的,至于具体管理方式后面继续讲
安装
一般情况下crond、crontab是安装好的,这里主要提一下万一没有crontab你别想着直接用yum去安装crond或者crontab因为你会发现找不到包,其实定时任务的包是cronie。(这里因为我遇到了所以提一下)
这样就行了
crondtab访问外网 指定网页方法
*/3 * * * * curl http://www.baidu.com
关于crond和crondtab常用命令
crond常用命令
crontab常用命令
三种编辑定时任务的方式
定时任务格式
1、直接编辑配置文件
配置文件路径:/etc/crontab
在配置文件中,原本6个段的配置,我们需要在命令前面再加一个用户段
即:分 时 日 月 周 用户 命令
直接添加到最后一行即可
2、使用crontab -e 命令编辑
使用命令编辑相当于就是编辑当前用户的任务,所以不需要加用户字段,这里就是6段
3、直接编辑目标文件
进入/var/spool/cron/
如果你执行了以上两种方式,你再进来看一下这个目录下的文件你可能会发现一点问题
这里的文件都是以用户名来命名的,你再打开你使用crontab -e 添加过任务的用户文件,原来crontab -e编辑的就是这里的文件,所以我们如果需要为哪个用户添加任务,只用编辑这个目录下对应用户的文件即可
4、实例
5、相关文件
个人测试中的问题
1、关于重新加载配置文件
根据网上说的修改配置文件之后需要重新加载配置文件或者重启crond才能生效,测试过程中发现只要修改了配置文件即可生效,无需使用systemctl reload crond加载
2、crond报错
(CRON) DEATH (can't lock /var/run/crond.pid, otherpid may be 8138): Resource temporarily unavailable
解决的各种姿势