web-dev-qa-db-ja.com

ランダムな平日ごとにcronジョブを設定するにはどうすればよいですか?

質問はかなり自明なので、外部スクリプトを使用せずにランダムな平日を実行するようにcronjobを設定する方法を知りたいと思います。

編集:人々がこの質問を理解していない場合のために、私たちは5つの平日、つまり月曜日、火曜日、水曜日、木曜日、金曜日があります。私は24時間年中無休で稼働しているサーバーを持っています。週にany 1 weekdayで実行されるcronを設定したいと思います。

注:この質問はdaily/weekly/monthly cronjobsに関係していないため、これが重複する質問であるとは非常に疑わしいです。

2
Varun Chandak

このようなものはあなたのために働きますか? bash配列days(シェルプレフィックスに注意)からランダムな日を選択し、random_runnerの下にcronジョブ(/etc/cron.d)を書き込んでスクリプト/home/foobar/myscriptを実行します。

これを/etc/cron.d/random_generatorに配置して、毎日新しい「ランナー」を生成できます。

Shell=/bin/bash
27 8 * * * root  days=(Mon Tue Wed Thu Fri Sat Sun); rd="$(( RANDOM \% 7 ))"; day="${days[$rd]}"; echo "45 15 * * $day root /home/foobar/myscript" > /etc/cron.d/random_runner
3
Server Fault