
3つのシェルスクリプトがあり、別の日に順次実行したいと思います。 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