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ć.

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.


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 myuser@myother.machine:/some/directory/file.to.process
ssh myuser@myother.machine "/usr/bin/something /some/directory/file.to.process"
scp myuser@myother.machine:/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.


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).


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.