ユーザーが同じcronスケジュールを使用できないようにしますか?


1

私のサーバーには多くのユーザーがまったく同じcronスケジュールを使用しているため、サーバーの負荷が高くなっています。これを防ぐことはできますか?

たとえば、次のcronスケジュールを使用するユーザーがx人いる場合、0 1 * * *将来のユーザーが同じcronスケジュールを使用できないようにすることはできますか?


回答:


0

ユーザーアカウントごとにスケジュールされたcronを割り当てることができます。

crontab -e -u user

1
これは、2人のユーザーが同じスケジュールを使用することを妨げません。
slhck

0

ユーザーのすべてのcronファイルを比較し、競合する場合はそれらを移動するスクリプトを作成しないのはなぜですか?これが0 1 * * *存在する各競合のいくつかのcrontab で変更が見つかった場合は5 1 * * *、とに沿って分を移動し10 1 * * *ます。次に、このスクリプトをルートcrontabで実行するだけで、ユーザーcrontabが頻繁に自動的に変更されます。

指定した時間にユーザーのcronジョブを実行することが重要な場合は、PAM制限の使用を検討する必要があります


0

ユーザーが単に夜間のタスクを実行することを意図している場合は、〜/ nightly.shの実行に基づいたソリューションの方が簡単かもしれません。

次に、«/ home / * / nightly.sh»を次々に実行します。もちろん、各ユーザーのスクリプトを適切な環境で実行する必要があります(cronはこれらのことを行います)。

しかし、それは非常に簡単かもしれません。例えば:

for user in user0 user1 user2 user3 ... 
do 
   script=/home/$user/nightly.sh
   [ -x $script ] || continue 
   sudo -u $user  2>&1 | mail -s "nightly.sh" $user 
done
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.