当需要重新启动时,我正在尝试通过脚本重新启动许多 Ubuntu 服务器。
当我使用测试作为非交互式命令执行 bash 时,我得到的结果是不需要重新启动,即使文件/var/run/reboot-required
存在。
usera@client:~$ ssh server02 bash -c 'test -f /var/run/reboot-required && echo sudo reboot || echo "$(hostname): no reboot required"'
server02: no reboot required
当我通过 SSH 登录到同一台服务器并手动运行我的测试时,我得到了正确的结果,sudo reboot
.
usera@client:~$ ssh server02
Last login: Tue Jun 14 08:03:00 2022 from 146.140.16.1
usera@server02:~$ test -f /var/run/reboot-required && echo sudo reboot || echo "$(hostname): no reboot required"
sudo reboot
usera@server02:~$ bash -c 'test -f /var/run/reboot-required && echo sudo reboot || echo "$(hostname): no reboot required"'
sudo reboot
我需要改变什么才能得到正确的结果?