Eu tenho a configuração crontab -e para ajudar com algumas tarefas de gerenciamento de log para arquivos syslog.
Eu tenho algumas linhas como esta que são definidas para rodar em tempos escalonados para arquivos tar gz e remover os arquivos antigos quando estiverem completos:
30 01 * * * find /syslog/sog_firewalls/psc/device1/*.gz -mtime +1 | xargs tar --remove-files -cvPf device1_$(date +%F).tar
31 01 * * * find /syslog/sog_firewalls/psc/device2/*.gz -mtime +1 | xargs tar --remove-files -cvPf device2_$(date +%F).tar
os meus registos cron mostram-nos em execução, mas nada é feito. Os arquivos gz originais ainda estão em cada pasta e nenhum tar é criado:
Dec 4 01:30:01.000000 stgapsclsplc01 CRON[16691]: (root) CMD (find /syslog/sog_firewalls/psc/device1/*.gz -mtime +1 | xargs tar --remove-files -cvPf device1_$(date +)
Dec 4 01:30:01.000000 stgapsclsplc01 CRON[16690]: (CRON) info (No MTA installed, discarding output)
Dec 4 01:31:01.000000 stgapsclsplc01 CRON[16696]: (root) CMD (find /syslog/sog_firewalls/psc/device2/*.gz -mtime +1 | xargs tar --remove-files -cvPf device2_$(date +)
Dec 4 01:31:01.000000 stgapsclsplc01 CRON[16695]: (CRON) info (No MTA installed, discarding output)
Se eu pegar a string de comando e executá-la diretamente na CLI, ela fará exatamente o que estou tentando fazer, mas tentando passá-la através do crontab -e não. Alguém sabe por quê?
ok, então eu tentei escapar e apenas o monitorei em execução. Ele removeu os arquivos, mas não os tar agora. Aqui está o que eu fiz no crontab: 30 01 * * * encontrar /syslog/sog_firewalls/psc/device1/*.gz -mtime +1 | xargs tar --remove-files -cvPf device1 _ $ (date + \% F) .tar 31 01 * * * encontrar /syslog/sog_firewalls/psc/device2/*.gz -mtime +1 | xargs tar --remove-files -cvPf device2 _ $ (date + \% F) .tar
Cron logs mostra
Dec 5 01: 30: 01.000000 stgapsclsplc01 CRON [19872]: (raiz) CMD (localizar /syslog/sog_firewalls/psc/device1/.gz -mtime +1 | xargs tar --remove-files -cvPf device1 _ $ (date +% F) .tar) Dez 5 01: 30: 02.000000 stgapsclsplc01 CRON [19871]: (CRON) info (Nenhum MTA instalado, descartando a saída) Dez 5 01: 31: 01.000000 stgapsclsplc01 CRON [19879]: (raiz) CMD (localizar /syslog/sog_firewalls/psc/device2/.gz -mtime +1 | xargs tar --remove-files -cvPf device2_ $ (data +% F) .tar) Dec 5 01: 31: 03.000000 stgapsclsplc01 CRON [19878]: (CRON) info (Nenhum MTA instalado, descartando a saída)