Jak mogę przekształcić plik na 1. maszynie za pomocą narzędzia na 2. maszynie w jednej linii nad ssh?

1

Mam kilka narzędzi do plików na maszynie miętowej, których wolałbym nie instalować na moim laptopie Mac. Głównie z powodu ogromu apt-get i niskiego ryzyka niepowodzenia instalacji. Tak czy inaczej, co jakiś czas mam plik, który chcę przetworzyć na miejscu za pomocą jakiegoś narzędzia zdalnego. Obie maszyny mogą ssh bezpośrednio do siebie, więc pomyślałem, że musi istnieć jakiś skrypt lub narzędzie, które pozwoliłyby mi wpisać coś takiego remote [file] [tool & args] wysłać mój plik na inny komputer, przetworzyć go, a następnie odzyskać.

sh54
źródło

Odpowiedzi:

3

Jeśli narzędzie jest prostym filtrem, możesz użyć go normalnie, ale nad ssh.

ssh user@host somefilter < infile > outfile

Jeśli oczekuje nazwy pliku, ale nie musi szukać w nim ani pliku wyjściowego, możesz (ab) użyć do tego basha.

ssh user@host bash -c "sometool <(/dev/stdin) -o >(/dev/stdout)" < infile > outfile

W przeciwnym razie będziesz musiał przenieść plik do lub z innego systemu.

Ignacio Vazquez-Abrams
źródło
2

Koncepcja UNIXa robi jedną rzecz i robi to cicho. Następnie możesz zbudować własne narzędzia w oparciu o te proste procesy.

Wystarczy napisać skrypt, który scpuje plik na komputerze, uruchamia komendę ssh, aby go zmodyfikować, a następnie wycofuje. Trzy linie, oto bardzo prosty szablon,

scp oldfile [email protected]:/some/directory/file.to.process
ssh [email protected] "/usr/bin/something /some/directory/file.to.process"
scp [email protected]:/some/directory/file.which.is.processed newfile

Dodaj parametry i wprowadź błąd sprawdzania, a ty jesteś dobry.

Lub, jak pokazuje inna odpowiedź, możesz skierować stdin / stdout na inny komputer, więc dla filtrów jest to jeszcze prostsze.

EightBitTony
źródło
0

Cóż, możesz ustawić przekierowanie X11 przez ssh z komputera, na którym znajduje się plik do procesu. Ta strona to dobry poradnik, jak to zrobić. Zasadniczo pozwala uruchomić program ze zdalnego serwera na Twój komputer (korzystając z zasobów komputera).

Ram
źródło
Nie, korzysta z zasobów innego komputera i twojego serwera X. Ponadto serwer X nie jest domyślnie instalowany w systemie OS X.
Ignacio Vazquez-Abrams
0

Możesz także spróbować zamontować inny system jako katalog. Wtedy możesz uzyskać do niego dostęp normalnie, tak jakby był na twojej maszynie miętowej. sshfs to jeden ze sposobów, aby to zrobić.

mac$ ssh user@mint
mint$ mkdir ~/mac
mint$ sshfs user@mac:/path ~/mac
mint$ tool ~/mac/file
goweon
źródło