Impedir que os usuários usem a mesma programação cron?

1

Eu tenho muitos usuários no meu servidor usando exatamente o mesmo cron cronograma e isso está causando alta carga no servidor. Podemos evitar isso?

Por exemplo, se houver x números de usuários que usam o seguinte cron schedule: 0 1 * * * , é possível impedir que futuros usuários usem a mesma programação cron?

    
por IMB 22.03.2013 / 10:53

3 respostas

0

Você pode atribuir cron agendado por conta de usuário:

crontab -e -u user
    
por 22.03.2013 / 11:37
0

Por que não simplesmente escrever um script que compara todos os arquivos cron do usuário e os move se eles entrarem em conflito? se isso for encontrado em vários crontabs 0 1 * * * para cada conflito que existe, mova os minutos ao longo de 5 1 * * * e 10 1 * * * . Em seguida, simplesmente execute este script no crontab raiz para que ele mude automaticamente os crontabs do usuário com frequência.

Se for crucial que os cron jobs dos usuários sejam executados nas horas especificadas, você terá que dar uma olhada em PAM limites .

    
por 22.03.2013 / 19:01
0

Se seus usuários simplesmente pretendem realizar tarefas noturnas, uma solução baseada na execução de seu ~ / nightly.sh pode ser mais simples.

Você então executaria "/home/*/nightly.sh", um após o outro. É claro que você teria que executar o script de cada usuário com suas próprias permissões e em um ambiente razoável (o cron faz essas coisas).

Mas pode ser bem simples. Por exemplo:

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
    
por 24.03.2013 / 00:55