2012-04-05 70 views
0

我有一个执行远程命令并将输出重定向到本地文件的脚本。通过ssh将信号从本地父节点转发到远程子节点

远程命令不断读取pcap文件列表并写入标准输出。

最后一个命令是这样的 -

ssh [email protected] /sbin/path-to-utility | cat > local-file 

其中执行该远程命令需要具有信号处理程序,以节省整体转移的状态的脚本。

另外我想发送信号给远程命令或进程,停止读取pcap文件,以便在写完当前文件后退出。

我试过-t选项和信号处理工作得很好,但它为远程命令写入的实际输出增加了一些额外的字符并干扰了我的pcap数据。

要么我需要处理信号没有-t选项通过SSH或我需要找出为什么ssh -t正在增加额外的字节到实际的数据。

请帮忙!

谢谢,

萨钦。

回答

0

-t选项告诉ssh分配一个终端。额外的字符旨在由您的终端解释。

也许你应该告诉ssh你正在使用一个不同的终端,一个不会产生任何额外的字符,但仍然会传递信号。这是否工作?

TERM=dumb ssh [email protected] /sbin/path-to-utility | cat > local-file 

(我不知道什么是使用TERM的最佳值。)

+0

感谢您的答复! 我试过你的解决方案,没有运气! 另外我使用了不同的TERM值,比如“linux”,仍然不工作! 谢谢, Sachin – 2012-04-06 14:18:44

+0

也许'TERM ='''(两个单引号)? – dave4420 2012-04-06 21:34:34

+0

不工作... 再次感谢! – 2012-04-09 09:11:44