0

我有一个执行远程命令并将输出重定向到本地文件的脚本。

远程命令只是连续读取 pcap 文件列表并写入标准输出。

最后的命令是这样的——

ssh root@host /sbin/path-to-utility | cat > local-file

执行此远程命令的脚本需要有信号处理程序来保存整体传输的状态。

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

我尝试了 -t 选项并且信号处理工作得非常好,但是它在远程命令写入的实际输出中添加了一些额外的字符并扰乱了我的 pcap 数据。

要么我需要通过 ssh 处理没有 -t 选项的信号,要么我需要找出为什么 ssh -t 会向实际数据添加额外的字节。

请帮忙!

谢谢,

萨钦。

4

1 回答 1

0

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

也许你应该告诉 ssh 你正在使用一个不同的终端,它不会产生任何额外的字符,但仍会传递信号。这行得通吗?

TERM=dumb ssh root@host /sbin/path-to-utility | cat > local-file

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

于 2012-04-05T16:54:33.907 回答