Zarówno w pracy, jak i w domu często wykonuję następujące czynności:
$ scp "SomeScriptIJustCreatedOrModified.sh" some-server:
$ ssh some-server ./SomeScriptIJustCreatedOrModified.sh arguments
A czasem też ta odmiana:
$ scp "SomeScriptIJustCreatedOrModified.sh" some-server:/tmp
$ ssh some-server -t sudo -u other_user /tmp/SomeScriptIJustCreatedOrModified.sh arguments
Chodzi o to, że serwer często znajduje się w innym kraju, a uzgadnianie SSH zwykle zajmuje co najmniej kilka sekund --- i ten pozorny krótki czas oczekiwania może szybko się zestarzeć, a także przeszkodzić w tworzeniu długich list serwerów. Co więcej, byłem wcześniej krytykowany za tworzenie podejrzanie szybkich kolejnych połączeń SSH.
Jak to osiągnąć?
.bashrc
?Odpowiedzi:
Spróbuj spojrzeć na
controlmaster
. Otwiera pojedyncze połączenie ssh i umożliwia przyszłym połączeniom ssh i scp przechodzenie przez to samo połączenie, więc nie trzeba ponownie podawać hasła ani czekać na otwarcie połączenia.Oto przykład konfiguracji
controlmaster
.Edytuj
.ssh/config
plik, aby uwzględnić linie:Gdzie
hostname
iusername
są zastępowane odpowiednimi informacjami.źródło
Jeśli masz dostęp do ssh na serwerze, zawsze możesz użyć klienta sftp, takiego jak ExpanDrive, aby zamontować zdalny katalog domowy na komputerze lokalnym. Następnie możesz po prostu napisać skrypt lokalnie w edytorze tekstu i zapisać go na lokalnym komputerze zdalnym.
W tym momencie będzie na serwerze, a wszystko, co musisz zrobić, to ssh i uruchomić go. Dopóki utrzymujesz otwarte połączenia sftp i ssh, możesz zapisywać i uruchamiać tyle skryptów, ile chcesz, przez cały dzień, a będziesz musiał połączyć się tylko raz dla sftp i raz dla ssh.
Pamiętaj tylko, że przy takim przepływie pracy za każdym razem, gdy zapiszesz, będziesz pisać na zdalnym serwerze, a on będzie pisał tak szybko, jak pozwalają na to ograniczenia systemu operacyjnego i sieci (tj. Będzie wolniejszy niż zapis lokalny).
źródło