При использовании команды find и tar для архивации файлов, архив сбрасывается в середине процесса - PullRequest
0 голосов
/ 14 марта 2019

Я использую этот скрипт для tar всех файлов в каталоге, которые были изменены в прошлом году:

YEAR=$(date +%Y --date='1 year ago')
find  /var/www/html/upload/ -maxdepth 1 -newermt "$YEAR-01-01T00:00:00" -not -newermt "$YEAR-12-31T23:59:59"  -type f -print0 | xargs -0  tar -cpvzf    /home/pete/suitecrm-document-yearly-backup_$YEAR.tar.gz

Кажется, что команда find работает, но в некоторых тестах она предоставляет правильные файлы.

Проблема, с которой я сталкиваюсь, заключается в том, что когда архив достигает примерно 700 мегабайт, консоль показывает следующее:

/var/www/html/upload/9e514350-4778-7fbf-4afb-5bd97fc41d11
/var/www/html/upload/b8b5ef47-0376-2446-d0cc-5bb32a509560
tar: Removing leading `/' from member names
/var/www/html/upload/f3278e64-4cfe-f4c0-40b4-5bd97982357b
/var/www/html/upload/5364c7e9-00b2-e4a1-1343-5bd1cf619519

и размер архива обнуляется, а все файлы удаляются. Это происходит еще несколько раз, прежде чем сценарий будет завершен (не всегда на 700 мегабайт).

Скрипт запускается от имени пользователя root. Я также попробовал это как одну команду, поэтому:

find  /var/www/html/upload/ -maxdepth 1 -newermt "2018-01-01T00:00:00" -not -newermt "2018-12-31T23:59:59"  -type f -print0 | xargs -0  tar -cpvzf  /home/pete/suitecrm-document-yearly-backup_2018.tar.gz

Но с тем же результатом.

Любая помощь будет отличной.

...