Cronjob:遍历文件

Cronjob:遍历文件

我想使用 cron-job 遍历 bash 脚本列表。例如,每两个小时我想启动另一个 bash 脚本。我的想法是设置一个新的环境变量,每次 cronjob 脚本读取此环境变量并调用相应的脚本并增加环境变量。

我尝试了这个,如果我test.sh从终端调用它就会起作用。

# test.sh
JOB_COUNTER=$((JOB_COUNTER + 1))
echo $JOB_COUNTER
export JOB_COUNTER=$JOB_COUNTER

如果我从内部调用它crontab$JOB_COUNTER似乎不会增加(我用它检查echo $JOB_COUNTER

背景:我想每两小时向我们的集群添加 50 个新作业,因为如果我将所有作业一起提交,调度程序会同时启动太多作业,并且大多数作业会因为 I/O 太慢而超时。如果 cronjob 不是您要使用的,我愿意接受其他想法。

答案1

cron 调用的每个 test.sh 都是一个新进程,因此环境变量被删除。

尝试

# test.sh
JOB_COUNTER=$(< $HOME/jobcounter.txt )
JOB_COUNTER=$((JOB_COUNTER + 1))
echo $JOB_COUNTER > $HOME/jobcounter.txt
echo $JOB_COUNTER
# JOB_COUNTER can be used here 

. ./test.sh请注意,除非 test.sh 是源代码( ),否则不能在调用 shell 中使用 JOB_COUNTER

你必须初始化并重置$HOME/jobcounter.txt

相关内容