W wieloserwerowym środowisku Linux wiele zadań obejmuje przenoszenie jednego lub więcej plików z jednego serwera na drugi. W zależności od liczby plików, które musisz przenieść, istnieje kilka poleceń, które mogą ci pomóc….
Załóżmy dla tych dyskusji, że naszymi serwerami są Alice i Madhat, a naszym użytkownikiem na Alice jest królik, a naszym użytkownikiem na madhat jest mysz Fieldmouse.
Kroki
Krok 1. W przypadku pojedynczego pliku wypróbuj polecenie „scp”
Możesz użyć tego jako polecenia „push” lub „pull”, ale zacznijmy od wypchnięcia pliku na inny serwer. Będąc na alice, użyj polecenia "scp myfile fieldmouse@madhat:thatfile". Spowoduje to skopiowanie pliku do innego systemu, do identyfikatora użytkownika fieldmouse, o nazwie "thatfile". Jeśli byłeś zalogowany w innym systemie, mógłbyś równie łatwo ściągnąć plik za pomocą polecenia "scp rabbit@alice:myfile tenplik" i uzyskać te same wyniki.
Krok 2. Aby skopiować cały katalog, możemy ponownie przejść do polecenia „scp”
Tym razem dodamy przełącznik -r, aby kopia działała "rekursywnie". "scp -r mydir fieldmouse@madhat:." skopiuje cały katalog "mydir" do innego systemu, łącznie z całą jego zawartością i dodatkowymi katalogami. Katalog na madhat nadal będzie nazywał się mydir.
Krok 3. Co zrobić, jeśli masz duży „bałagan” plików i katalogów do skopiowania?
Możesz użyć polecenia „tar”, aby utworzyć pojedynczy plik, a następnie skopiować ten plik jak powyżej, a następnie użyć tar, aby rozwinąć go na innym serwerze… Ale to mogłoby się wydawać… nie-unixowe. Musi być na to sposób w jednym kroku, prawda? Cóż, oczywiście! Wprowadź fajki swojej ulubionej muszli. Nadal możemy użyć tar do spakowania żądanych plików, a następnie użyć ssh, aby przenieść je do innego systemu (którego scp używał pod okładkami) i tar po drugiej stronie, aby ponownie rozwinąć pliki. Ale po co marnować czas i miejsce na tworzenie rzeczywistego pliku tar, skoro moglibyśmy po prostu utworzyć potok, który łączy oba systemy i przesyłać przez niego dane tar? Używając tego samego katalogu, co w poprzednim przykładzie, spróbuj "tar -cf - mydir/ * | ssh fieldmouse@madhat 'tar -xf -'"
Porady
- Oczywiście są też inne sposoby na zrobienie tego. Linux jest pełen narzędzi. Twój przebieg może się różnić
- Podczas korzystania z powyższych poleceń należy zastąpić nazwę użytkownika/nazwę hosta/nazwę pliku/nazwę katalogu zgodnie z konfiguracją sieci i środowiskiem. Przedstawione powyżej komendy to tylko przykłady wykonania komendy kopiowania plików na serwer.