我有一个执行远程命令并将输出重定向到本地文件的脚本。
远程命令只是连续读取pcap文件列表并写入stdout。
最后的命令是这样的 -
ssh root@host /sbin/path-to-utility | cat > local-file
执行此远程命令的脚本需要具有信号处理程序以保存整体传输的状态。
另外我想发送信号到远程命令或进程停止读取pcap文件,以便在写完当前文件后退出。
我尝试了-t选项并且信号处理工作得非常好,但是它为远程命令写入的实际输出添加了一些额外的字符并干扰了我的pcap数据。
我需要在ssh上处理不带-t选项的信号,或者我需要找出ssh -t为实际数据添加额外字节的原因。
请帮忙!
谢谢,
萨钦。
答案 0 :(得分:0)
-t
选项告诉ssh分配终端。额外的字符旨在由您的终端解释。
也许你应该告诉ssh你正在使用一个不同的终端,一个不会产生任何额外字符的终端,但仍会传递信号。这有用吗?
TERM=dumb ssh root@host /sbin/path-to-utility | cat > local-file
(我不知道用于TERM的最佳价值是什么。)