各スクリプト間に10秒を置き、5分ごとに複数のスクリプトをクローンします。

各スクリプト間に10秒を置き、5分ごとに複数のスクリプトをクローンします。

複数のファイルを設定しましたが、crontabすべてのスクリプトを5分ごとに実行する必要があります。
これらのスクリプトに一度に多くのCPUとIOが必要で、システムが利用できなくなると問題が発生します。

この効果を軽減するために、各スクリプト実行の間に10秒を置くオプションがあるかどうかを知りたいです。これらすべてのスクリプトに処理するデータが多すぎる場合は、大幅に増加する負荷(単一コアの場合は40以上)を利用できる必要があります。

すべてのスクリプトに対して5分秒で起動するのではなく、crontabでスクリプトを5分ごとに実行するようにスケジュールすることは可能ですか?

ベストアンサー1

クローンアイテムを作成します。

*/5 * * * * processA ; sleep 10 ; processB ; sleep 10 ; process C

しかし、私はそうしないことをお勧めします。

cronをどのように使用するのか分かりません。クローンはそれほどスマートではありません。 5分ごとにジョブを実行し、ジョブを実行するのに6分かかる場合は、2つのプロセスが実行されます。結局、数十または数百のプロセスが同時に実行されます。

より安全な方法はcronを使用しないことです。代わりに、このようなスクリプトを実行してください。 systemd または /etc/init.d スクリプトを使用して、常に実行される「サービス」に切り替えます。

while true ; do
   processA
   sleep 10
   processB
   sleep 10
   processC
   sleep 600
done

詳細な説明はここで見ることができます。

クローンを使用しない方法

おすすめ記事