Tengo 2 servidores (Linux 2.6.32-696.el6.x86_64), supongamos fe1 y fe2.
Necesito ejecutar un comando (inicio/parada del servicio Tomcat) en fe2 desde fe1 pero requieresudo como raíz. Comando que estoy usando pararaíz sudo essudo su
#!/bin/sh
host=fe2
user=`whoami`
sftp $user@fe2 << EOF
sudo su
service tomcat stop
bye
EOF
¿se puede hacer de alguna otra manera?
Respuesta1
Puede enviar cualquier comando a través de ssh desde fe1 a fe2 de la siguiente manera
ssh whoami@fe2 'sudo service tomcat start'
Si desea ejecutar varios comandos ssh
desde un servidor a otros comandos separados con ;
el interior ' '
de la siguiente manera
ssh whoami@fe2 'sudo -s; service tomcat start; service tomcat status; other_commands; '
ssh
los ejecutará todos en el orden que ha mencionado. Cualquier stdin
solicitud se tomará del servidor de comando y cualquier salida en stdout
o stderror
también se transferirá a través dessh