1

Я пытаюсь скопировать много файлов с моего NAS на сервер, около 2 ТБ.

Я обнаружил, что использование netcat канала tar для копирования каталогов идет довольно быстро, около 40 Мбит / с. Кажется, он работает быстрее, чем rsync и ssh , поэтому я бы предпочел продолжать использовать netcat канал tar .

Вот что я сделал:

На приеме я делаю это:

nc -l 7000 | pv | tar -xpf -

И на конце отправки я делаю это:

tar -cf - * | pv | nc otherhost 7000 

Теперь я хотел бы остановить копирование и продолжить позже. Я попытался с небольшим каталогом, чтобы перезапустить процесс, но он также отправит файлы, которые уже там.

Есть ли способ предотвратить отправку файлов, которые уже существуют на сервере?

1 ответ1

0

Не автоматически, но когда вы возобновите передачу позже, вы можете исключить файлы, которые уже были скопированы, используя список исключений tar. См. Http://www.cyberciti.biz/faq/exclude-sure-files-when-creating-a-tarball-using-tar-command/

Как исключить файлы zyz и abc при использовании команды tar?

Версия GNU утилиты архивирования tar имеет опции --exclude и -X . Поэтому, чтобы исключить abc и xyz файл, вам нужно набрать команду следующим образом:

$ tar -zcvf /tmp/mybackup.tar.gz --exclude='abc' --exclude='xyz' /home/me

Если у вас более двух файлов, используйте опцию -X, чтобы указать несколько имен файлов. Он читает список исключаемых имен файлов из текстового файла. Например, создайте файл с именем exclude.txt:

$ vi exclude.txt

Добавить имена файлов:

abc 
xyz
*.bak

Сохраните и закройте файл. Здесь перечислены шаблоны файлов, которые необходимо исключить. Теперь введите команду: $ tar -zcvf /tmp/mybackup.tar.gz -X exclude.txt /home/me

Если файл был передан наполовину, и вы не хотите перезаписывать его снова с помощью tar, вы можете исключить его, а затем использовать другой инструмент для возобновления копирования. Я бы порекомендовал использовать для этого rsync или lftp.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .