Problem polega na tym: chcę skopiować pliki ze zdalnego komputera.
Szukam sposobu na napisanie skryptu powłoki, który połączyłby się ze zdalnym komputerem, uzyskał lokalizację zapisanego pliku, gdy tylko odłączę lokalizację od zdalnego serwera i użyję scp z komputera lokalnego z uzyskaną lokalizacją do skopiuj plik.
W szczególności chcę wiedzieć, jak ze skryptu, chciałbym połączyć się ze zdalnym komputerem, wykonywać zadania na tym komputerze. Odłącz i kontynuuj wykonywanie lokalne.
Możesz napisać skrypt w następującym formacie:
Musisz skonfigurować klucze SSH, aby były
command3
wykonywane bez pytania o hasło.źródło
ssh user@remote command3
działa,command4
nie można rozpocząćssh user@machine command3 &
Zakładam, że masz już pewne pojęcie o tym, jak zidentyfikujesz plik, który chcesz skopiować, i że możesz lub już napisałeś skrypt lub zestaw poleceń, które będą działać na zdalnej maszynie, która dokonuje tej identyfikacji .
Ponadto założę również, że te polecenia wypisują na standardowym wyjściu pełną ścieżkę do pliku lub względną ścieżkę do pliku, względem katalogu domowego użytkownika SSH używanego do kopiowania. W moim przykładzie nazwa skryptu to „getfilepath.sh”, chociaż nie musi to być skrypt powłoki, może to być jakiś inny plik wykonywalny lub nawet seria poleceń.
W powyższym kodzie notacja „$ ()” jest sposobem na przechwycenie standardowego wyjścia polecenia jako zmiennej powłoki. Jest to dość standardowe, ale jeśli używasz powłoki, która jej nie rozumie, możesz zamiast tego otoczyć polecenie „tykającymi znakami wstecznymi”, które są znakami akcentującymi po lewej stronie klawisza 1 na większości klawiatur amerykańskich.
źródło
być może możliwe jest uruchomienie zaplanowanego zadania na zdalnym komputerze, który wykona całą pracę.
Zapobiegnie to podłączeniu się do zdalnego komputera podczas wyszukiwania lokalizacji plików, które chcesz skopiować.
Robię to:
linia poleceń uruchamia zaplanowane zadanie, które w moim przypadku wykonuje skrypt wsadowy.
Z poważaniem
źródło