如何在脚本中启动ssh命令以后执行本地命令?

时间:2013-08-30 12:54:04

标签: ssh webcam vlc

我经常在二楼的家中,通过网络摄像头和这些脚本密切关注(开放式)地面室内装饰。

首先,我使用 $ sh~ / .camconn 连接到远程系统,其中包含:

sshpass -f 'passw' ssh -X name@remoteip '~/webcam5050'

远程文件〜/ webcam5050包含:

#! /bin/sh
cvlc -vvv v4l2:// --sout '#transcode{vcodec=mjpg,vb=2000,width=320,height=240,venc=ffmpeg}:duplicate{dst=standard{access=http,mux=mpjpeg,dst=0.0.0.0:5050/video.mpjpeg}

等待5到6秒后,我启动本地网络摄像头浏览器 $ sh~ / compaqcam ,其中包含。:

cvlc http://remoteip:5050/video.mpjpeg

和bingo:桌面上有一个不错的VLC窗口。

当然,我希望这一切都发生在一个命令上,我试着无济于事:

#!/bin/bash 
(camcon &) && (sleep 8 &) && (compaqcam &) &

我使用这个脚本取得了一些成功:

#!/bin/bash
(sshpass -f 'passw' ssh -X name@remoteip '~/webcam5050'&) && (sleep 8 &) && (cvlc http://remoteip:5050/video.mpjpeg &) & 

至少在遥控器上显示“sshd(已接受)”,但随后没有进一步发生。

我能指出正确的方向吗? 如果是这样,我会非常(!)感激,因为我的bash手册(4pcs)在这种情况下失败了。

2 个答案:

答案 0 :(得分:1)

我没有您的设置,但我怀疑问题是&睡觉之后,它会把它放到后台,所以它会立即完成,我认为你的脚本可以是:

#!/bin/bash  
camcon &
sleep 8 
compaqcam &

您仍然可以在&之后没有sleep 8的情况下在一行上执行此操作,但这种方式将来更清晰,更容易编辑。

答案 1 :(得分:0)

!/斌/庆典

camcon& 睡觉8 compaqcam&

与ssh-keygen和ssh-copy-id一起完成了这个技巧。 非常感谢!