美文网首页我用 LinuxLinux学习|Gentoo/Arch/FreeBSDLinux
linux定时执行脚本——按照你期望的方式

linux定时执行脚本——按照你期望的方式

作者: Mx_php | 来源:发表于2019-10-11 13:57 被阅读0次

如何每分钟执行一个命令?
如何让脚本只在工作日执行?
如何让脚本只在上班时间执行?
元旦当天的8点执行任务怎么做?

```* * * * * /var/shell/test.sh```  // 这个五个星代表什么意思?
```10 * * * * /var/shell/test.sh``` // 这是代表每天的xx点10分执行脚本还是每10分钟执行一次?
```10 2,3,5,12 * * * /var/shell/test.sh``` // 这逗号又是什么意思?
```10 8-17 * * 1-5 /var/shell/test.sh``` // 代表工作日8-17点,每10分钟执行一次脚本吗?
```*/5 */2 * * * /var/shell/test.sh``` // 这么写对不对?

本文用于解决如上问题,记住以上表达式的含义。并简单说明crontab命令。

linux系统用于执行计划任务的命令,命令行输入如下命令,

cat /etc/crontab

输出如下结果:


[root@localhost cron]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# 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

说明

配置

前四行是用来配置crond任务运行的环境变量:

  • SHELL : 指定系统使用哪个shell,这里是bash;

  • PATH : 指定系统执行命令的路径

  • MAILTO :指定crond的任务执行信息将通过电子邮件发送给root用户(如果MAILTO为空,则表示不发送任务执行信息给用户)

  • HOME变量指定在执行命令或者脚本时使用的主目录。

注释及参数说明

上面代码返回的注释标识了命令格式及参数说明。

crontab命令格式如下:

* * * * * user-name command to be executed

  • 5个 * 字段自左到右代表的意思及取值范围:
    (划重点了!)

分钟(0-60)、小时(0-23)、天(1-31)、月(1-12)、星期(0-6);

命令参数的特殊符号

(*) :代表所有可能的值

(,) :用逗号隔开的值指定对应字段的列表范围,例如:“1,3,5”在月份中则限制执行命令在1 3 5 月执行;

(-) :表示一个整数范围,例如“2-6”表示“2,3,4,5,6”;

(/) :指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时 / 可以和 * 一起使用,例如 */10,如果用在minute字段,表示每十分钟执行一次。

crond 服务

安装

yum install crontabs

操作说明:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

查看服务状态:

service crond status

手动启动:

service crond start

查看服务自启动情况

ntsysv

  • [*]表示已自启动。
开机自动启动命令:

chkconfig –level 35 crond on

crontab 用法


usage:  crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]

(default operation is replace, per 1003.2)

-e  (edit user's crontab)

-l  (list user's crontab)

-r  (delete user's crontab)

-i  (prompt before deleting user's crontab)

-s  (selinux context)

例如我输入crontab -e后出现如下我自己的计划任务


*/5 * * * * /xxx1.sh // 每五分钟执行1次

0 3 * * * /xxx2.sh  // 每天3点执行1次

0 4 * * * /xxx3.sh // 每天4点执行1次

相关文章

  • linux定时执行脚本——按照你期望的方式

    如何每分钟执行一个命令?如何让脚本只在工作日执行?如何让脚本只在上班时间执行?元旦当天的8点执行任务怎么做? 本文...

  • 通过swoole定时器监控服务的稳定性

    用linux的定时脚本去执行例如:netstat -anp | grep 9501 结合linux定时器 cron...

  • Linux 定时运行脚本、命令

    摘要:今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。Linux下的定时执行主要是使...

  • 定时任务错误总结1

    Linux下定时脚本执行问题定时脚本(crontab)如果遇到设定后不生效的问题,排查问题思路如下:(1)查看脚本...

  • linux 任务定制及环境配置

    关键词:linux python脚本 定时执行 通过crontab调度脚本时脚本使用的环境变量与直接在shell中...

  • linux定时任务contab

    前言 本文介绍如何通过LINUX定时执行一个脚本,执行的脚本文件如下vim do.sh:: 用例场景 每分钟执行 ...

  • linux 定时任务实战

    本文将以实例学习,如何在 linux 中定时执行脚本任务。 添加定时任务 执行命令: crontab -e 进入编...

  • Linux 定时执行shell脚本

    步骤如下: 1.在/etc/crontab文件最后添加定时任务并保存,如: 0 10 * * * root /ap...

  • linux 定时执行脚本

    linux 定时执行脚本 声明:目前菜鸟级别,只是自己工作当中需要用到时查询资料解决工作所需做些记录,方便以后自己...

  • 6、shell脚本执行方式

    在Linux中shell脚本的执行方式有以下三种,其执行方式与区别如下: 直接执行脚本,即 路径/script.s...

网友评论

    本文标题:linux定时执行脚本——按照你期望的方式

    本文链接:https://www.haomeiwen.com/subject/zvvtmctx.html