需要ssh并运行单个命令作为更大的bash脚本的一部分

时间:2016-06-29 00:06:46

标签: linux bash macos ssh vmware

我的脚本基本上是一种方便的远程关机和wakeonlan方式。该脚本从我的Raspberry Pi

运行

关闭我的桌面很简单,但是当我关闭我的家庭服务器时,我首先要通过SSH连接到它并发出&#34来关闭我的种子盒虚拟机(在我的家庭服务器上运行)。 ; shutdown -h now"

           TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"`
           echo "$TIMESTAMP: shutting down seedbox virtual machine"  >> ${LOG_FILE}
           sshpass -p " " ssh -o StrictHostKeyChecking=no lukesau@192.168.1.27
           sleep 5
           sudo shutdown -h now
           sleep 60
           TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"`
           echo "$TIMESTAMP: shutting down $TARGET"  >> ${LOG_FILE}
           net rpc shutdown -f -t 5 -C 'Shutting down in 5 seconds' -U lukesau%pass -I 192.168.1.99

seedbox是在VMware中运行的Mac OS X虚拟机。也许在关闭主机操作系统之前有更好的方法来关闭虚拟机

1 个答案:

答案 0 :(得分:0)

它不是如何工作的,ssh不会从你的输入文件中读取以下命令。您可以在ssh

之后指定要执行的命令
sshpass -p " " ssh -o StrictHostKeyChecking=no lukesau@192.168.1.27 \
  'sh -c  "sleep 5 ;  sudo shutdown -h now ; sleep 60"'

这假设您希望通过ssh执行这3个命令,其余的"本地"试。

我不会为报价提供保证,也不会为你施工,因为我没有手册。