我需要实现一个每天随机运行两次的 cron 作业。
目标是部署一个包含 cron 任务的 rpm 包,但 cron 任务不会在部署的机器上同时执行
我在 StackOverflow 上读到了很多类似的问题,但没有一个回答我的问题,而且我找不到合适的解决方案。
我不想使用 sleep 方法,因为这会涉及睡眠随机(43200),我认为这太多了
这里有一个简单的 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 -