需要一个每天随机运行两次的 cron 作业

问题描述 投票:0回答:1

我需要实现一个每天随机运行两次的 cron 作业。

目标是部署一个包含 cron 任务的 rpm 包,但 cron 任务不会在部署的机器上同时执行

我在 StackOverflow 上读到了很多类似的问题,但没有一个回答我的问题,而且我找不到合适的解决方案。

我不想使用 sleep 方法,因为这会涉及睡眠随机(43200),我认为这太多了

cron redhat rocky-os
1个回答
0
投票

这里有一个简单的 bash 脚本,它将为第一次运行和第二次运行生成两个单独的 cron 作业。

请将

cmd
变量更改为您选择的命令或脚本。 (注意:如果设置脚本,请确保它是可执行的!)

#!/bin/bash

# Define the command you want to run
cmd="your_command_here"

# Generate random hour and minute for the first run
hour1=$((RANDOM % 24))
minute1=$((RANDOM % 60))

# Generate random hour and minute for the second run
hour2=$((RANDOM % 24))
minute2=$((RANDOM % 60))

# Create cronjobs for the two random times
(crontab -l 2>/dev/null; echo "$minute1 $hour1 * * * $cmd") | crontab -
(crontab -l 2>/dev/null; echo "$minute2 $hour2 * * * $cmd") | crontab -
© www.soinside.com 2019 - 2024. All rights reserved.