maxdepth-переключатель игнорируется при поиске в crontab

Ubuntu 16.04.2 LTS VMWare Cloud Server

Переключатель -maxdepth команды find игнорируется при использовании в корневом каталоге crontab. Когда одна и та же команда запускается из командной строки, переключатель maxdepth наблюдается командой find и действует.

Эта команда архивирует только содержимое каталога / var / www / news без рекурсии в подкаталоги (Желаемое поведение):

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

Эта корневая команда crontab архивирует содержимое всех содержимое в каталоге / var / www / news (полное игнорирование переключателя / нежелательного поведения -maxdepth 1)

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

Есть ли способ активировать соблюдение переключателя maxdepth при выполнении команды find из внутри корневого crontab?

0
задан 28 April 2017 в 20:59

6 ответов

Пошел с исключением каталога, чтобы остановить рекурсию, используя только tar, исключая использование find.

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"

Другие методы, упомянутые в этом потоке, не работали, т.е. --no-рекурсия и -тип F! -тип d

0
ответ дан 22 May 2018 в 23:07

Пошел с исключением каталога, чтобы остановить рекурсию, используя только tar, исключая использование find.

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"

Другие методы, упомянутые в этом потоке, не работали, т.е. --no-рекурсия и -тип F! -тип d

0
ответ дан 18 July 2018 в 14:06

Пошел с исключением каталога, чтобы остановить рекурсию, используя только tar, исключая использование find.

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"

Другие методы, упомянутые в этом потоке, не работали, т.е. --no-рекурсия и -тип F! -тип d

0
ответ дан 24 July 2018 в 20:19

Поведение, которое вы видите, не имеет ничего общего с -maxdepth, потому что список файлов из вашей команды find включает в себя каталоги верхнего уровня, которые затем рекурсивно архивируются с помощью tar.

В текущих версиях GNU tar есть опция --no-recursion, чтобы отключить рекурсивный обход каталога. Однако, если вы не хотите архивировать пустые каталоги верхнего уровня, возможно, самым простым решением является пропустить каталоги из списка, добавив -type f или ! -type d в команду 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
0
ответ дан 22 May 2018 в 23:07
  • 1
    Я нашел --no-recursion опция GNU tar не работает, и сервер действительно использует GNU tar. Надеюсь, в один прекрасный день эта функция без рекурсии будет исправлена. Не удалось получить другие упомянутые техники, т. Е. Тип F! Тип d. – ml48603 1 May 2017 в 22:32

Поведение, которое вы видите, не имеет ничего общего с -maxdepth, потому что список файлов из вашей команды find включает в себя каталоги верхнего уровня, которые затем рекурсивно архивируются с помощью tar.

В текущих версиях GNU tar есть опция --no-recursion, чтобы отключить рекурсивный обход каталога. Однако, если вы не хотите архивировать пустые каталоги верхнего уровня, возможно, самым простым решением является пропустить каталоги из списка, добавив -type f или ! -type d в команду 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
0
ответ дан 18 July 2018 в 14:06

Поведение, которое вы видите, не имеет ничего общего с -maxdepth, потому что список файлов из вашей команды find включает в себя каталоги верхнего уровня, которые затем рекурсивно архивируются с помощью tar.

В текущих версиях GNU tar есть опция --no-recursion, чтобы отключить рекурсивный обход каталога. Однако, если вы не хотите архивировать пустые каталоги верхнего уровня, возможно, самым простым решением является пропустить каталоги из списка, добавив -type f или ! -type d в команду 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
0
ответ дан 24 July 2018 в 20:19
  • 1
    Я нашел --no-recursion опция GNU tar не работает, и сервер действительно использует GNU tar. Надеюсь, в один прекрасный день эта функция без рекурсии будет исправлена. Не удалось получить другие упомянутые техники, т. Е. Тип F! Тип d. – ml48603 1 May 2017 в 22:32

Другие вопросы по тегам:

Похожие вопросы: