ich habe 2 Server (Linux 2.6.32-696.el6.x86_64), vermutlich fe1 und fe2.
ich muss einen Befehl ausführen (Dienst Tomcat starten/stoppen) auf fe2 von fe1, aber es erfordertsudo als Root. Befehl, den ich verwende fürsudo root istsudo su
#!/bin/sh
host=fe2
user=`whoami`
sftp $user@fe2 << EOF
sudo su
service tomcat stop
bye
EOF
kann man das auch anders machen?
Antwort1
Sie können jeden Befehl über SSH von fe1 an fe2 wie folgt senden
ssh whoami@fe2 'sudo service tomcat start'
ssh
Wenn Sie mehrere Befehle von einem Server auf einen anderen übertragen möchten, geben Sie ;
innerhalb des Servers ' '
Folgendes ein:
ssh whoami@fe2 'sudo -s; service tomcat start; service tomcat status; other_commands; '
ssh
führt sie alle in der von Ihnen angegebenen Reihenfolge aus. Alle stdin
Anfragen werden vom Befehlsserver entgegengenommen und alle Ausgaben an stdout
oder stderror
werden ebenfalls übertragen überssh