maxdepth switch ignorado por find em execução no crontab

0

Ubuntu 16.04.2 Servidor LTS VMWare Cloud

O parâmetro -maxdepth do comando find é ignorado quando usado dentro do crontab raiz. Quando o mesmo comando é executado a partir da linha de comando, o parâmetro maxdepth é observado pelo comando find e é efetivo.

Este comando arquiva somente o conteúdo do diretório / var / www / news sem recursão em subdiretórios (Comportamento desejado):

$ (cd /; find var/www/news -maxdepth 1 -print0) | /bin/tar -C / --null -T - -zcvf /mnt/nfs/Backup-Static-Sites/backupfile.tar.gz

Este comando root crontab arquiva o conteúdo de todo o conteúdo no diretório / var / www / news (ignorando totalmente o parâmetro -maxdepth 1 / comportamento indesejado)

10 0 * * * (cd /; find var/www/news -maxdepth 1 -print0) | /bin/tar -C / --null -T - -zcvf /mnt/nfs/Backup-Static-Sites/backupfile.tar.gz

Existe uma maneira de ativar a observância do parâmetro maxdepth quando o comando find é executado a partir do crontab raiz?

    
por ml48603 28.04.2017 / 19:59

2 respostas

0

Fui com a exclusão de diretório para interromper a recursão usando apenas o tar, eliminando o uso da localização.

14 8 * * * /bin/tar -C / -zcvf /mnt/nfs/Backup-Static-Sites/html-News-Snapshot.tar.gz var/www/html-news.domain.tld --exclude "var/www/html-news.domain.tld/dir1"   . . "var/www/html-news.domain.tld/dirN"

Outras técnicas mencionadas neste tópico não funcionaram, ie. --no-recursão e -tipo F! tipo d

    
por ml48603 01.05.2017 / 21:30
0

O comportamento que você está vendo não tem nada a ver com -maxdepth , é porque a lista de arquivos do comando find inclui diretórios de nível superior, que são arquivados recursivamente por tar .

As versões atuais do GNU tar possuem uma opção --no-recursion para desativar o percurso recursivo do diretório. No entanto, se você não deseja arquivar os diretórios de nível superior vazios, provavelmente a solução mais simples é omitir diretórios da listagem adicionando -type f ou ! -type d ao comando find :

10 0 * * * (cd /; find var/www/news -maxdepth 1 ! -type d -print0) | /bin/tar -C / --null -T - -zcvf /mnt/nfs/Backup-Static-Sites/backupfile.tar.gz
    
por steeldriver 29.04.2017 / 01:06