Як передавати файли з одного Linux сервера на інший

В Linux середовищі з декількома серверами багато завдань припускають переміщення одного або декількох файлів з одного сервера на інший. Залежно від кількості файлів, які ви повинні перемістити, є кілька команд, які можуть вам допомогти .... Припустимо для цих обговорень, що наші сервери - alice і madhat, і що наш користувач на alice - це rabbit (кролик), і наш користувач на madhat - fieldmouse (польова мишка).

Кроки

  1. Як передавати файли з одного Linux сервера на інший

    1

    Для простого файлу спробуйте команду "scp". Ви можете використовувати це як команди "push" або "pull", але давайте почнемо з pushing (висування) файлу на інший сервер. У той час як на alice використовуйте команду "scp myfile fieldmouse @ madhat: thatfile". Це скопіює файл на іншу систему в ідентифікатор користувача userid - "thatfile". Якщо ви були зареєстровані в іншій системі, ви можете так само легко витягти файл за допомогою команди "scp rabbit @ alice: myfile thatfile" і отримаєте той же результат.

  2. Як передавати файли з одного Linux сервера на інший

    2

    Щоб скопіювати весь каталог, ми можемо знову звернутися до команди "scp". TНа цей раз ми додамо ключ -r, щоб змусити копію діяти "рекурсивно". "Scp -r mydir fieldmouse @ madhat :." - Скопіює весь каталог "mydir" на іншу систему, включаючи всі його зміст і додаткові каталоги. Каталог на madhat все одно буде називатися mydir.




  3. 3

    Що робити, якщо у вас є великий "безлад" з файлами і каталогами для копіювання? Ви можете використовувати команду "tar" щоб створити один файл, а потім скопіювати цей файл, як зазначено вище, а потім використовувати tar, щоб поширити його на іншому сервері ... Але це схоже на те ... не Unix-подібні. Там повинен бути спосіб зробити це за один крок, чи не так? Ну, звичайно!

    EВведіте pipe вашої улюбленої оболонки. Ми все ще можемо використовувати tar, щоб упакувати потрібні нам файли, а потім використовувати SSH, щоб отримати їх в іншій системі (що і SCP використовує під оболонками), і tar з іншого боку, щоб поширити файли назад. Але навіщо витрачати час і простір, створюючи сам файл tar, коли ми могли б просто створити pipe, яка охоплює дві системи і передає дані tar через неї?

    Використовуючи той же каталог, що і в попередньому прикладі, спробуйте "tar -cf - mydir / * | ssh fieldmouse @ madhat `tar -xf -`"

Поради



  • Звичайно, є також і інші способи зробити це. Linux - повна інструментів. Ваша оцінка може змінюватися.
  • Ви повинні міняти ім`я користувача / ім`я хоста / файл ім`я каталогу в залежності від конфігурації мережі та навколишнього середовища, поки використовуєте команди вище. Команди, наведені вище, є тільки прикладами виконання команд для копіювання файлів на сервер.

Попередження

  • Переконайтеся, що ідентифікатори та їх GID на різних систем, які ви використовуєте, збігаються (не тільки імена користувачів). Якщо це не так, цікаві проблеми з безпекою будуть відбуватися.