[解決済み] Cronジョブおよびランダム時間(指定時間内
2022-09-09 18:01:12
質問
PHPスクリプトを1日に20回、完全にランダムな時間に実行する機能が必要です。また、午前 9 時から午後 11 時の間にのみ実行されるようにしたいです。
私は、Linuxでcronジョブを作成することに精通しています。
どのように解決するのですか?
もし私があなたが探しているものを理解しているなら、少し面倒なことをする必要があります。例えば、実行時間をランダムにするbashスクリプトを実行するcronジョブが必要です。 このようなものです。
crontabを使用します。
0 9 * * * /path/to/bashscript
で、/path/to/bashscriptにあります。
#!/bin/bash
maxdelay=$((14*60)) # 14 hours from 9am to 11pm, converted to minutes
for ((i=1; i<=20; i++)); do
delay=$(($RANDOM%maxdelay)) # pick an independent random delay for each of the 20 runs
(sleep $((delay*60)); /path/to/phpscript.php) & # background a subshell to wait, then run the php script
done
いくつかの注意点: この方法は、午前9時に20のバックグラウンドプロセスを起動し、それぞれがランダムな分数(最大14時間、すなわち午後11時まで)待機し、その後PHPスクリプトを起動して終了するので、リソースを少し浪費しています。 また、ランダムな分数 (秒数ではない) を使用するため、開始時刻はそれほどランダムではありません。 しかし、$RANDOMは32,767までしかなく、9時から23時までの間に50,400秒あるので、秒数もランダムにするとなると、もう少し複雑になります。 最後に、開始時刻はランダムで互いに独立しているため、スクリプトの 2 つ以上のインスタンスが同時に開始される可能性があります (ただし、可能性はあまり高くありません)。
関連
-
[解決済み] 全ユーザーのcronジョブを一覧表示する方法を教えてください。
-
[解決済み] キーと値のペアのファイルから環境変数を設定する
-
[解決済み] ディレクトリ内のファイルをループしてパスを変更し、ファイル名にサフィックスを追加する方法
-
[解決済み] Bashで現在の作業ディレクトリをスクリプトのディレクトリに設定するにはどうすればよいですか?
-
[解決済み】シェルスクリプト全体の出力を、スクリプト自体の中でリダイレクトするには?
-
[解決済み】Cronとvirtualenvについて
-
[解決済み] Bashでコマンド出力を隠す方法
-
[解決済み] Makefileでシェルコマンドを使用する方法
-
[解決済み] bashでWebサーバーの応答を待つループを作成するには?
-
[解決済み] bashでalt + numericを押すと(arg [numeric])と出ますが、これは何でしょう?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 現在の日付と時刻を句読点を使わずに表示する
-
[解決済み] bashのループリストで空白をエスケープするには?
-
[解決済み] Bashで引用符で囲まれた文字列の中で環境変数を使用する方法
-
[解決済み] Bashでコマンド出力を隠す方法
-
[解決済み] 指定した名前のDockerコンテナが存在しない場合のみ、Bashコマンドを実行するにはどうすればよいですか?
-
[解決済み] find "の結果をカウントするのに最適な方法は何ですか?
-
[解決済み] シェルスクリプトからウェブブラウザを起動する方法は?
-
[解決済み] Docker: 実行中のDockerコンテナの停止と削除
-
[解決済み] unset の使用と変数への空の設定
-
[解決済み] MSYSでフォルダを閲覧する