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?
Пошел с исключением каталога, чтобы остановить рекурсию, используя только 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
Пошел с исключением каталога, чтобы остановить рекурсию, используя только 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
Пошел с исключением каталога, чтобы остановить рекурсию, используя только 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
Поведение, которое вы видите, не имеет ничего общего с -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
Поведение, которое вы видите, не имеет ничего общего с -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
Поведение, которое вы видите, не имеет ничего общего с -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