У меня есть точка монтирования, /media/xvdf1которую я использую bindfsдля монтирования /var/lib/jenkins/jobsс пользователем / группой jenkins. Я хочу сделать резервную копию, но у меня недостаточно места на другом разделе. После tarring файл должен быть загружен в S3 с помощью aws s3 cp.
Моя проблема в том, что если я использую tar для создания архива, он пытается скопировать файл, в который он записывает.
Разве не существует способ, позволяющий tar избежать получения собственного вывода?
2 ответа на вопрос
2
Eric Renouf
Вы можете использовать, --exclude=patternесли вам нужно, хотя я не уверен, как вы делаете, где вам нужно это сделать.
Запуск следующего:
tar -cf test.tar .
Я получаю сообщение:
tar: ./test.tar: file is the archive; not dumped
но, возможно, это просто расширение GNU, хотя моя версия BSD дает аналогичные
tar: ./test.tar: Can't add archive to itself
Тем не менее, вы могли бы сказать это явно игнорировать это с
tar -cf test.tar --exclude=./test.tar .
Причина, по которой он не обнаруживает проблему, возможно, из-за монтирования bindfs.
Janus Troelsen 8 лет назад
0
1
Zhuoer Dong
Я тоже сталкиваюсь с подобной проблемой.
Это может работать так в примере
tar -cf test.tar .
Вы запрашиваете tarархивирование ., затем tarсоздаете «пустой» файл test.tarдля хранения контента. Но дело в том, что test.tarэто тоже часть каталога .. Это выглядит как бесконечная рекурсия. Во всяком случае, tarкажется довольно умным и предотвратить это, так как в большинстве случаев это не то, что вы хотите.
Помимо использования --exclude, вы также можете попробовать
tar -cf test.tar ./*
Таким образом, вы просите tarзаархивировать (почти) все файлы .перед запуском команды, обратите внимание, что test.tarона не включена.