Cron: Como deletar diretório via cron

2

Eu já tenho o cron instalado e aqui está

  

1 0 * * * rm -R / caminho / para / my / folder / $ (date + '% Y-% m-% d'   -d "ontem")

Desejo excluir a pasta de todos os dias com "Yesterday name" LIKE "2014-12-14"

Aqui está o meu ubuntu / var / log / syslog quando executo o comando "grep CRON"

  

Dec 16 00:01:01 {SERVERNAME} CRON [21031]: (raiz) CMD (rm -R   / path / to / my / folder / $ (date + ') 16 dez 00:01:01 {SERVERNAME} CRON [21030]:   (CRON) info (Nenhum MTA instalado, descartando a saída)

    
por Aramayis Mkrtchyan 16.12.2014 / 12:37

2 respostas

2

A página de manual ( man 5 crontab ) diz:

  

A parte inteira do comando da linha, até uma nova linha ou%   caractere, será executado por / bin / sh ou pelo shell especificado em   a variável SHELL do arquivo crontab. Porcentagem-sinais (%) no   comando, a menos que tenha escapado com barra invertida (), será alterado para   caracteres de nova linha, e todos os dados após o primeiro% serão enviados para   o comando como entrada padrão.

Você precisa substituir cada % no formato de data por \% :

1 0 * * * rm -R /path/to/my/folder/$(date +'\%Y-\%m-\%d' -d "yesterday")
    
por Florian Diesch 16.12.2014 / 12:59
0

Você pode usar este comando

find /path/to/dir -maxdepth 0 -ctime +1 -exec rm -fr {} +

ou seja

1 0 * * * find /path/to/dir -maxdepth 0 -ctime +1 -exec rm -fr {} +

Crédito vai aqui

    
por rɑːdʒɑ 16.12.2014 / 12:42