Centos7 设置定时任务

在centos上最常用的定时任务应该就是crontab了,在经过各种度娘之后有三种方式实现定时任务的方法,但是所用到的场景有所不同

at    适合仅执行一次就结束的调度命令,需要启动一个后端的atd服务。
crontab 需要启动一个服务crond才行,crond服务通过crontab命令实现
anacron 无法周期性执行,只能以天为周期,但有个特点,在关机状态下未>执行的任务,下次开机时可以补上执行

这里也直讲最常用的crontab,主要其他两种我也没看也没测试

关于crontab和crond

用到crontab那么就一定要知道crond,crond和crontab是不可分割的,crond我的理解是一个守护进程,或者说这才是我们定时任务的核心,crontab是一个编辑或者说是管理定时任务的工具

crontab我的理解就是crond服务处于启动状态,这个服务会默认每分钟去检测是否有需要执行的定时任务,所以crond不能守护秒级定时任务。而这个任务的具体内容是通过crontab来管理的,至于具体管理方式后面继续讲

安装

一般情况下crond、crontab是安装好的,这里主要提一下万一没有crontab你别想着直接用yum去安装crond或者crontab因为你会发现找不到包,其实定时任务的包是cronie。(这里因为我遇到了所以提一下)

yum install -y cronie

这样就行了

关于crond和crondtab常用命令

crond常用命令

systemctl start   crond         启动服务
systemctl stop crond         停止服务
systemctl restart crond       重启服务
systemctl reload crond         重载配置文件
systemctl status crond         查看状态

crontab常用命令

crontab -u 		设定某个用户的cron服务
crontab -l 显示crontab文件(显示已设置的定时任务)
crontab -e 编辑crontab文件(编辑定时任务)
crontab -r 删除crontab文件(删除定时任务)
crontab -i 删除crontab文件提醒用户(删除定时任务)

三种编辑定时任务的方式

定时任务格式

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root # For details see man 4 crontabs # Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed 用户的定时任务分6段,分别是:分,时,日,月,周,命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令 *:表示任意时间都,实际上就是“每”的意思。可以代表00-23小时或者00-12每月或者00-59分
-:表示区间,是一个范围,00 17-19 * * * cmd,就是每天17,18,19点的整点执行命令
,:是分割时段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21点的半点时刻执行命令
/n:表示分割,可以看成除法,*/5 * * * * cmd,每隔五分钟执行一次

1、直接编辑配置文件

配置文件路径:/etc/crontab

在配置文件中,原本6个段的配置,我们需要在命令前面再加一个用户段

即:分 时 日 月 周 用户 命令

直接添加到最后一行即可

2、使用crontab -e 命令编辑

使用命令编辑相当于就是编辑当前用户的任务,所以不需要加用户字段,这里就是6段

* * * * * /home/wsj/scheduledTest.sh

3、直接编辑目标文件

进入/var/spool/cron/

如果你执行了以上两种方式,你再进来看一下这个目录下的文件你可能会发现一点问题

这里的文件都是以用户名来命名的,你再打开你使用crontab -e 添加过任务的用户文件,原来crontab -e编辑的就是这里的文件,所以我们如果需要为哪个用户添加任务,只用编辑这个目录下对应用户的文件即可

4、实例

* * * * * 				每1分钟执行一次
15,30,45 * * * * 每小时的第15、30、45分执行
15,30 10-11 * * * 在上午10点到11点的第15和第30分钟执行
* */2 * * * 每两个小时执行一次

5、相关文件

#该文件中所列用户不允许使用crontab命令
/etc/cron.deny # 该文件中所列用户允许使用crontab命令
/etc/cron.allow #所有用户crontab文件存放的目录,以用户名命名
/var/spool/cron/ # crond日志文件
/var/log/cron

个人测试中的问题

1、关于重新加载配置文件

根据网上说的修改配置文件之后需要重新加载配置文件或者重启crond才能生效,测试过程中发现只要修改了配置文件即可生效,无需使用systemctl reload crond加载

2、crond报错

(CRON) DEATH (can't lock /var/run/crond.pid, otherpid may be 8138): Resource temporarily unavailable

解决的各种姿势

1、杀掉所有crond进程,然后重启crond服务
2、检查你写的配置文件是否有错

如果以上两条你都做了,还是不行,兄弟,自求多福,我无能为力(反正我是因为配置文件卡死的)

Centos7 设置定时任务的更多相关文章

  1. CentOS7设置定时任务 每隔30分钟执行一次命令

    ref   https://blog.csdn.net/xiangxianghehe/article/details/78149094 一.安装 crontabs服务并设置开机自启: yum inst ...

  2. centos7设置定时任务

    第一种方式修改/etc/crontab文件,这种方式是系统的周期任务,只能root用户才可以执行 SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMA ...

  3. 使用SQL Server 2005作业设置定时任务

    公司有一个老项目由于直接把终端拍摄的图片以二进制的形式保存到数据库中,数据库比较大所以需要经常删除这些冗余数据,手动删除费时费力,项目组长让我把这些操作变成自动的,每天执行一次,只保留最近两个月的图片 ...

  4. #centos7 设置bond、bridge、vlan

    #centos7 设置bond.bridge.vlan #centos7 设置bond.bridge.vlan # CentOS7中 nmcli命令由NetworkManager提供 # 可以用于设置 ...

  5. quartz 时间设置(定时任务scheduler)

    quartz用来设置定时任务的作业调度程序.在linux的crontab中用到. 格式为: * * * * * * * 其从左到右顺序代表 :[秒] [分] [小时] [日] [月] [周] [年] ...

  6. Centos7 设置vim 显示文本不同颜色

    Centos7 设置vim 显示文本不同颜色 本人在查找设置 centos7 vim 文本显示颜色时, 学习了作者: luffy5459 (博客连接:https://blog.csdn.net/fei ...

  7. centos7 设置静态IP

    centos7 设置静态IP 一.查找配置文件(/etc/sysconfig/network-scripts) [root@bogon network-scripts]# ll 总用量 232 -rw ...

  8. 设置定时任务(Timer类的介绍)

    设置定时任务(Timer类的介绍) 在我们的很多项目中,我们都须要用到定时任务,因此想借此博文来对定时任务进行一个介绍. 设置定时任务过程例如以下: 先new一个Timer对象 Timer timer ...

  9. jenkins设置定时任务

    每次都手动的构建项目显然不够方便,有时候需要定时地执行自动化测试脚本.例如,每天晚上定时执行 pjenkins.py 文件来运行自动化测试项目. 设置定时任务 前面已经创建的 “python test ...

  10. vmware下为CentOS7设置静态IP

    vmware下为CentOS7设置静态IP可以分为三个主要步骤: 1. 在windows中设置VMWare创建的虚拟网络 2. 设置VMWare为静态IP 3. 设置CentOS7的网络为静态IP 首 ...

随机推荐

  1. #ifdef _WIN32 #ifdef _WIN64

    #ifdef _WIN32#ifdef _WIN64 这样的代码,实际上这提供了一种抽象机制,使代码可以在不同平台间移植. #ifdef _WIN32 #ifdef _WIN64 {windows 6 ...

  2. NCGROUP遍历成员用的cb

    1 static logical cycelGenerateCb(tag_t tag, void* data) 2 { 3 logical is_group; 4 char name[133]; 5 ...

  3. 【2020NOI.AC省选模拟#8】C. 海盗

    题目链接 原题解: 可以发现,在给定的规则下,若前$i$个人参与分配,则每个人得到的金币个数是固定的. 假设在前$i-1$个海盗参与分配时,某个海盗能得到$x$个金币,则第$i$个海盗需要给他$x+1 ...

  4. omcat启动Publishing failed with multiple errors

    新安装一个tomcat插件.启动的时候就弹错误框.但tomcat还能使用. Publishingfailedwithmultipleerrors Resource is out of sync wit ...

  5. yii 自定义form样式适应现成模板

    需求:想使用下边的样式但是使用yii中的表单样式会 <?= $form->field($model, 'attribute_code')->textInput()->label ...

  6. c语言中的原子操作

    参考文章:https://blog.csdn.net/yikai2009/article/details/8650221 1. 原子操作:原子操作指的是在执行过程中不会被别的代码所中断的操作..分为 ...

  7. python中json的四个方法总结dumps、dump、loads、load

    json的四个方法总结dumps.dump.loads.load dump介绍 1 json .作用:将python内置类型序列化为json对象后写入文件.参数:要存储的数据以及可以用于存储的文件对象 ...

  8. 前端本地 Nginx 反向代理

    一.问题引入 本地开发遇到线上bug,debug得stash代码切换分支,同时需切换开发环境与生产环境服务,npm run serve 或 npm start 费时 二.webpack-dev-ser ...

  9. QPushButton与Enter相链接

    ui->pushButton_login->setFocus(); // 设置默认焦点 ui->pushButton_login->setShortcut(QKeySequen ...

  10. 上分之路 VP Codeforces Round #744 (Div. 3) ABDE

    VP情况 4 / 8 AC: A,B,D,E1 60 minutes WA: C 4 127   +00:02 +00:28 -7 +00:58 +00:39       手速还在线 D pair排个 ...