Estou tentando reiniciar um Teltonika RTU950 usando ssh.
Eu posso fazer login como root via ssh e reiniciar o roteador bem. No entanto, se eu tentar enviar o comando de reinicialização por ssh, ele não funcionará.
ssh root@routerip 'reboot'
Isso retorna o erro:
ash: reboot: not found
Eu tentei usar shutdown -r em vez disso. Também tentei usar o caminho absoluto. Sempre me dá o mesmo erro.
Note-se que o erro diz: ash:
e não bash:
.
O roteador é executado em um sistema operacional linux. uname dá:
Linux Teltonika-RUT950.com 3.18.44 #1
Alguma ideia do que poderia estar causando isso?
Tente inserir o caminho completo para o comando de reinicialização ou desligamento. Por exemplo, se o caminho completo para reinicializar for /sbin/reboot, execute
ssh root@routerip /sbin/reboot
Qual é o seu shell quando você faz login como root?
Se for realmente bash, você provavelmente pode tentar:
ssh root@routerip /bin/bash -c "/sbin/reboot"
Observe que, do ponto de vista da segurança, habilitar o login root por SSH é uma má ideia. Você deve verificar a documentação do fornecedor para ver se pode corrigir isso.
ssh -t root@device reboot
man ssh para o sinalizador -t
A causa é que, sem o sinalizador -t, você obtém um shell sem login e um PATH diferente. Além disso, mesmo fornecendo o caminho completo, o comando reboot provavelmente detecta que ele é executado de forma não interativa.