我正在尝试使用 ssh 重新启动 Teltonika RTU950。
我可以通过 ssh 以 root 身份登录,然后重新启动路由器即可。但是,如果我尝试通过 ssh 发送重新启动命令,它不起作用。
ssh root@routerip 'reboot'
这会返回错误:
ash: reboot: not found
我尝试过使用 shutdown -r 代替。也尝试过使用绝对路径。总是给我同样的错误。
需要注意的是,错误说:ash:
而不是bash:
。
路由器在Linux操作系统上运行。 uname 给出:
Linux Teltonika-RUT950.com 3.18.44 #1
知道是什么原因造成的吗?
答案1
尝试输入重新启动或关闭命令的完整路径。例如,如果重新启动的完整路径是 /sbin/reboot,则运行
ssh root@routerip /sbin/reboot
答案2
当您以 root 身份登录时,您的 shell 是什么?
如果确实是 bash,那么你可以尝试:
ssh root@routerip /bin/bash -c "/sbin/reboot"
请注意,从安全角度来看,通过 SSH 启用 root 登录并不是一个好主意。您应该检查供应商文档以查看是否可以解决该问题。
答案3
ssh -t root@设备重新启动
man ssh 用于 -t 标志
原因是如果没有 -t 标志,您将获得一个非登录 shell 和一个不同的路径。除此之外,即使提供完整路径,重新启动命令也可能检测到它以非交互方式运行。