Obtenha uma lista de todos os scripts e seus caminhos que são executados como cron job

1

Eu estou procurando por algum script ou comando terminal para listar todos os scripts (preferencialmente com seus caminhos) que são executados periodicamente pelo cron, cron.daily. Não estou procurando nenhum filtro para o período de tempo do script e quero todos os scripts listados (no entanto, alguns administradores podem querer esse tipo de filtro).

Finalidade: Para documentar todos os scripts em execução periodicamente, para que a depuração ou a verificação de falhas, a atualização e a transferência para um sistema mais recente sejam fáceis e eficientes.

    
por ankit7540 25.05.2016 / 12:03

1 resposta

2

Para encontrar os nomes de arquivo e os tipos de script de todos os scripts, execute a partir do cron por usuários não-root (não identifica o usuário):

find /var/spool/cron/crontabs/ -type f ! -name 'root' \
  -exec awk '!/^[[:blank:]]*(#|$)/ {print $6}' {} + | 
    xargs -d'\n' file | grep -i script
/home/cas/scripts/fetch.sh:               Bourne-Again shell script, ASCII text executable
/usr/local/sbin/backup-postgres.sh:       Bourne-Again shell script, ASCII text executable

Para encontrar todos os executáveis (binários e scripts) executados a partir do cron por usuários não-root (identifica usuário):

find /var/spool/cron/crontabs/ -type f ! -name 'root' \
  -execdir awk '!/^[[:blank:]]*(#|$)/ {print FILENAME"\t"$6}' {} + |
  sed -e 's:^./::'
cas   /home/cas/scripts/fetch.sh
postgres      /usr/local/sbin/backup-postgres.sh

É claro que ambos precisam ser executados como root. Apenas root pode ler os crontabs de todos os usuários.

Nota: os crontabs podem estar em um diretório diferente em seu sistema. Verifique a documentação do seu daemon do cron.

    
por 26.05.2016 / 03:54

Tags