bash dentro do crontab não está funcionando

1

Eu tenho um crontab que é executado a cada minuto e remove alguns diretórios e arquivos.

Meu cron parece com isso

* * * * * bash /var/www/html/Database/Backup/Remove_Old_Backups >/dev/null 2>&1

No meu log eu posso ver o comando em execução

CRON[57937]: (kahoadmin) CMD (bash /var/www/html/Database/Backup/Remove_Old_Backups >/dev/null 2>&1)

Este é o meu arquivo de script

#!/bin/bash

ROOTDIR="/var/www/html/Database/Backup/Backups/*" 
sudo find $ROOTDIR -mtime +5 | xargs rm -f -r

Se eu executar este script diretamente, estou trabalhando e removendo o diretório e os arquivos. Apenas no crontab não está funcionando

Alguém pode me ajudar a descobrir o que está errado aqui?

    
por Nikesh 06.11.2017 / 06:05

1 resposta

1

Meu palpite é que suas permissões estão erradas para o sudo (mas também é possível que você esteja perdendo os caminhos para encontrar e xargs ao executar a partir do cron)

Se fosse eu, eu iria - 1. Coloque o arquivo em / etc / crontab e execute-o como root. 2. Altere-o para um script de 1 linha com menos dependências (como fiz com frequência). Eu colocaria a seguinte linha em / etc / crontab

* * * * * root /bin/find /var/www/html/Database/Backup/Backups mtime +5  -exec rm -rf {}  +

O que faz a mesma coisa sem depender de xargs

Noto que você está fazendo um -rf - tem certeza de que deseja excluir a força de forma recursiva - especialmente um processo automatizado em todos os subdiretórios?

    
por 06.11.2017 / 07:03