Linux中设置定时任务执行特定的工作任务

10 篇文章 0 订阅
3 篇文章 0 订阅

Linux中设置定时任务执行特定的程序

1. 安装cron

如果是docker容器,可能里面没有安装cron,需要单独安装及启动后才可用,以下以Ubuntu镜像为例进行安装。

如输入crontab -e命令是,提示未找到

root@76a8cb3b2426:/app# crontab -e
bash: crontab: command not found
root@76a8cb3b2426:/app#

1. 安装

# 更新
apt update
# 安装
apt install cron
# 查看状态 service cron status
root@76a8cb3b2426:/app# service cron status
 * cron is not running
root@76a8cb3b2426:/app#

# 启动
service cron start
# 停止
service cron stop
# 重启
service cron restart

# 查看crons是否在
# 开机启动
systemctl enable cron

2. 查看cron是否开机启动项中

如果看到 [ + ] cron,表示 cron 服务已被添加到启动项中。

root@76a8cb3b2426:/app# service --status-all
 [ - ]  cron # 未加入开机启动项
 [ ? ]  hwclock.sh
 [ - ]  procps
root@76a8cb3b2426:/app#

3. 容器启动后将cron加入开机启动项中

将cron服务添加到系统的默认运行级别中,以便在系统启动时自动启动。

update-rc.d cron defaults

root@76a8cb3b2426:/app# update-rc.d cron defaults
root@76a8cb3b2426:/app# service --status-all
 [ - ]  cron
 [ ? ]  hwclock.sh
 [ - ]  procps
root@76a8cb3b2426:/app#

4. cron帮助

^Croot@76a8cb3b2426:/app# crontab --help
crontab: invalid option -- '-'
crontab: usage error: unrecognized option
usage:  crontab [-u user] file
        crontab [ -u user ] [ -i ] { -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)
root@76a8cb3b2426:/app#

5. 中文含义

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字段,表示每十分钟执行一次。

2. 使用方式

在Ubuntu中,你可以使用cron来设置定时任务。要编写定时表达式,你可以编辑crontab文件,具体步骤如下:

  1. 打开终端。
  2. 输入 crontab -e 并按 Enter 键打开 crontab 文件进行编辑。
  3. 在文件中添加定时任务,格式如下:
分钟 小时 日期 月份 星期要运行的命令

例如,如果你想每天的早上8点运行一个命令,你可以这样写:

0 8 * * * /path/to/your/command

这里的 0 是分钟,8 是小时,* 表示任意日期和月份,最后的 /path/to/your/command 是你想要运行的命令的路径。

  1. 保存并关闭文件。

3. 设置按不同条件执行特定任务的案例

在Linux中,你可以使用cron来设置定时任务。cron是一个Unix类操作系统的定时任务调度器,它可以让你在特定的时间、日期或周期性地运行任务。

设置按秒、分、时、天、周、月、季度、年等不同条件执行特定任务的案例

以下是一些案例,演示如何使用cron设置按不同条件执行特定任务:

1. 每分钟执行一次

* * * * * /path/to/your/script.sh

# 
* * * * * /app/demo.sh

2 .每小时执行任务

0 * * * * /path/to/your/command

这个任务将会在每小时的第0分钟执行。

3. 每天执行任务

0 0 * * * /path/to/your/command

这个任务将会在每天的午夜执行。

4. 每周执行任务

0 0 * * 0 /path/to/your/command

这个任务将会在每周的星期天(0)的午夜执行。

5. 每月执行任务

0 0 1 * * /path/to/your/command

这个任务将会在每月的第一天的午夜执行。

6. 每季度执行任务

你需要结合月份和星期来实现这个需求。比如,要在每个季度的第一个月的第一周执行任务,可以这样设置:

0 0 * 1,4,7,10 0 /path/to/your/command

这个任务将会在每个季度的第一个月的第一周的午夜执行。

7. 每年执行任务

0 0 1 1 * /path/to/your/command

这个任务将会在每年的第一天的午夜执行。

这些是一些常见的案例,你可以根据实际需求和cron的语法来设置更复杂的定时任务。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值