Відповіді:
Одне слово : rsync
.
Зауважте, що якщо ви перебуваєте на повільному посиланні або сервер знаходиться під великим навантаженням, інструмент, який використовується для копіювання, не буде вузьким місцем, і будь-який спосіб копіювання все одно буде повільним.
Це має забезпечити основне використання для копіювання між вашим локальним комп’ютером та віддаленим сервером: http://oreilly.com/pub/h/38
Щоб скопіювати з локального комп'ютера на віддалений сервер (потрібно, звичайно, замінити шляхи, ім’я користувача та адресу хоста):
rsync -avz -e ssh /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
-a
архів-v
багатослівний-z
компрес-e ssh
"використовувати тунель SSH"Щоб скопіювати в інший бік, переключіть контури (перший - від , другий - до ):
rsync -avz -e ssh remoteuser@remotehost.somewhere.example.com:/path/on/server /path/on/local/computer
Але rsync корисний навіть для копіювання речей на один і той же сервер:
rsync -av /path-to/copy/from /path_to/copy/to
-z
для копіювання локальної мережі або копіювання в межах однієї машини; тестуйте -z
копію через Інтернет і без нього (те чи інше може бути швидшим, залежно від багатьох речей).
-e ssh
для віддалених хостів тепер за замовчуванням, тому не потрібно явно передавати параметр.
Інше слово: scp
scp /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
Для однократних угод scp - це зручно. Якщо файлів багато, то rsync - хороша ідея. Якщо з'єднання припинено, rsync може вибрати місце, де воно припинилося.
Я знав, що rsync має стиснення ( -z
), і щойно дізнався, що також працює scp ( -C
).
У вашому налаштуванні rsync, ймовірно, достатньо ... але, наприклад, якщо є багато невеликих файлів, можливо, швидше спочатку націлити файли, ніж передати потім через rsync. Це тому, що передача власника, часових позначок, дозволів десь важче, ніж сам файл, якщо файл невеликий. Тар об'єднає всю цю інформацію в один файл, а rsync скопіює більші блоки.
Або ще краще, якщо не потрібна безпека, використовуйте tar і nc:
За призначенням підготуйте приймаючий демон, віджати та зніміть зйомку:
nc -l -p 12345 | pigz -d | tar xvf -
На джерелі націлюйте все, паралельно стискайте та відправляйте його до пункту призначення:
tar cvf - ./ | pigz | nc host 12345
-z
опцію для локального копіювання, оскільки додає зайві накладні витрати. IMHO, ви повинні використовувати лише-z
під час використання rsync через повільне мережеве посилання. Якщо ви копіюєте велику кількість даних понад 100Base-T, вам може бути непогано без цього-z
. При швидкому підключенні до мережі використання компресії може прив’язати ваш процесор і погубити інші процеси.