如何使用 crontab 运行脚本,以便它们在不同的日子相继执行?

如何使用 crontab 运行脚本,以便它们在不同的日子相继执行?

我有 3 个 shell 脚本,我想在不同的日子里按顺序运行它们。我怎样才能用 crontab 做到这一点?

例如我有这 3 个脚本:test1 test2 test3
今天是星期一。脚本test1在 12 点执行。
明天是星期二。脚本test2在 12 点执行。
周三,test3
周四,test1
星期五,test2。等等。

(如果需要任何进一步的信息,请在评论中告诉我,以便我添加问题。)

答案1

简单的方法是每天运行一个脚本,并让它跟踪要运行哪个脚本。就像是:

#!/bin/bash
# find my name
me="${0##*/}"
# make sure the counter file exists.
counter="/var/run/$me"
if [[ ! -f "$counter" ]] ; then
  echo "1" >"$counter"
fi
maxcount=3
 
pick="$(cat  "$counter")"
nextpick=$(( pick + 1 ))
[[ $nextpick -gt $maxcount ]] && nextpick=1
echo "$nextpick" > "$counter"

case $pick in
  1) test1;break;;
  2) test2;break;;
  3) test3;break;;
  *) echo "Invalid pick: $pick" >&2; exit 1;;
esac
exit 0

相关内容