Como editar várias tarefas cron do usuário do cpanel de uma só vez?

1

Estou usando cat /var/spool/cron/* para ver todos os trabalhos cron criados por todos os usuários do cpanel.

É possível editar sua saída como editar via nano e clicar em salvar?

    
por IMB 21.03.2013 / 19:40

1 resposta

0

Se você está tentando fazer detecção e prevenção de colisão (conforme indicado em outra pergunta que você fez ), então uma maneira simples de realizar o que você pergunta seria

cat /var/spool/cron/* >/tmp/cat.out; $EDITOR /tmp/cat.out

que iria concatenar todos os crontabs de vários usuários em um único arquivo, salvá-lo e editá-lo. Mas eu não vejo muita utilidade para isso. Muito mais útil seria

ls /var/spool/cron/* | xargs -i $EDITOR {}

que editaria o crontab de cada usuário em sequência, salve e abra o próximo. Caberia a você (como root) notar e corrigir os conflitos entre cada arquivo.

Um refinamento adicional seria criar uma versão anotada da primeira abordagem para identificar os problemas e, em seguida, voltar e editar os crontabs de usuário específicos individualmente para as correções.

for I in /var/spool/cron/*; \
do awk '!/^#/&&!/^[^[:blank:]]*=/{printf "%s:\t%s\n", F, $0}' F=$I $I; \
done |sort -k2 | less

listará todo o conteúdo de todos os arquivos crontab, exceto para comentários e atribuições de variáveis de ambiente, prefixo de cada um com o nome do arquivo crontab de contribuição específico e classificado por conteúdo crontab. Espero que isso coloque todas as linhas de horários semelhantes em todos os crontabs juntas na ordem de classificação, para que você possa escolher facilmente linhas conflitantes e quais usuários contribuíram com elas. A saída resultante é apenas para referência, não para instalação no cron.

    
por 25.03.2013 / 17:05