main

Простой способ перекидывания файлов по сети между nix машинами

Способ не претендует на оригинальность, но, по моим наблюдениям, им мало кто пользуется. Не требуется rsync, самба, nfs, ftp и прочее. Только стандартный tar и netcat. Две строчки команд, по одной на машину.

На машине-источнике: tar -cv src/dir/ | nc -c -t <dest ip> <port>

На машине приемнике: cd dest/dir nc -t -l -c -p <port> | pv | tar -x

pv - используется в качестве прогресс-бара, его можно не включать в конвеер и обойтись параметром «-v» у tar'а.

Если абсолютно уверены в надежности сети между машинами, «-t» у netcat'а можно заменить на «-u» (tcp -> udp), будет чуть быстрее.

UPD: Похоже, в некоторых случаях, последний файл в архиве "бьётся". Неплохо бы было выяснить почему. Обойти можно добавив в конец архива ещё какой-нибудь один файл.

UPD2: Похоже, я не первый кто наступает на эти грабли. Проблема описана здесь.

P.S. Продублировал на http://linuxdv.org/wiki