Estamos usando Powershell versión 5.1.18362.1171 en Windows 10.
Si ejecutamos el siguiente comando:
ssh -i id_rsa [email protected] 'exec bash -l';
Y luego ejecute manualmente este comando en la consola bash abierta:
/usr/bin/o3d3xx-reboot
El script funciona correctamente sin errores y al final se reinicia. Sin embargo, si intentamos ejecutar este código automáticamente con el siguiente código, siempre fallará con algún error dentro del script de reinicio:
ssh -i id_rsa [email protected] '/usr/bin/o3d3xx-reboot';
¿Hay alguna forma de ejecutar este script/binario sin entrada manual, de la misma manera que funciona en la primera versión?
Respuesta1
A menos que nos proporcione el archivo de registro que describa por qué no se produjo el reinicio, es difícil adivinar cuál es el problema.
Probablemente puedas solucionar el problema invocando bash en tu ssh, ejecutando el comando y finalizando la conexión ssh inmediatamente, así:
ssh you@yourserver "bash --rcfile <(echo '. ~/.bashrc; /usr/bin/o3d3xx-reboot; exit') -l"
El hecho de que invoque bash
with -l
parece indicar que su o3d3xx-reboot
ejecutable necesita algo de /etc/profile
. Es posible que desee buscar allí para encontrar una solución menos complicada.
Respuesta2
ssh -i id_rsa myuser@myip "bash --login -c 'cd /usr/bin/ && o3d3xx-reboot && exit'";
Parece que faltaban variables de entorno, por lo que el script no funcionó. Utilicé el script anterior que carga el entorno de la misma manera que si hubiera iniciado sesión y hubiera escrito los comandos manualmente.