Odpowiedzi:
Możesz przekazać ssh
klientowi polecenie do wykonania zamiast uruchomienia powłoki, dołączając ją do polecenia ssh.
ssh username@domain.com 'rm /some/where/some_file.war'
Nie musisz udawać się cd
do lokalizacji, aby coś usunąć, o ile określisz pełną ścieżkę, więc jest to kolejny krok, który możesz pominąć.
Następne pytanie to uwierzytelnienie. Jeśli to uruchomisz, pojawi się monit o podanie hasła. Jeśli nie chcesz wprowadzać tego interaktywnie, powinieneś skonfigurować uwierzytelnianie publickey.
-f
do rm
wykonywania połączeń zdalnych?
rm
, powinny one zostać przekazane do osoby dzwoniącej, chyba że użytkownik wie, czego się spodziewać i dlaczego coś przesłania. Wiele błędów i frustrujących debugowania później można uniknąć, korzystając tylko z opcji potrzebnych w danym senario.
-f
Opcja to rm
jest skrótem --force
i ma wpływ na to, czy w przypadku nieistniejących plików lub fałszywych argumentów wyświetlane są błędy. Zwykle polecenia są uruchamiane przez powłoki nieinteraktywne, tak czy inaczej domyślnie są mniej interaktywne, ale tak nie jest lub pojawia się interaktywny monit, co należy zrobić, aby naprawić ustawienia bezpośrednio z tym związane. Jeśli skryptów to nie powinien mieć tę kwestię tak, i jeśli jesteś w interaktywnej powłoki (gdzie masz możliwość katastroficznych literówek) należy użyć -I
na --interactive=never
ustawić pożądane zachowanie.
Jeśli chcesz usunąć zdalny plik za pomocą sudo, musisz wykonać coś takiego:
ssh -tt user@host 'stty raw -echo; sudo rm /path/to/file' < <(cat)
Polecenie ssh ma parametr polecenia (ostatni parametr w poleceniu), którego można użyć do uruchomienia poleceń zdalnych.
Skonfiguruj klucze bez hasła, a następnie dodaj polecenie jako część polecenia ssh. Zobacz: http://www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/