Linux:通过ssh使用tee命令

时间:2012-08-20 15:58:50

标签: linux ssh tee

我编写了一个Fortran程序(我们称之为program.exe)并为我做了一些模拟。通过ssh我正在登录一些遥远的计算机,开始在那里运行我的结果,我几天后收集。为了了解程序的最新进展,我想将shell输出写入文本文件output.txt(因为我无法一直登录远处的计算机)。该命令应该类似于

nohup program.exe | tee output.txt > /dev/null &

这使我能够查看output.txt以查看当前状态,即使该程序尚未结束其运行。上面的命令在我的本地机器上运行正常。我首先尝试使用命令'>'但问题是在整个程序完成之前没有写入文本文件(可能与管道缓冲区相关?)。所以我使用了'tee'的解决方法。

问题是,当我通过ssh(ssh -X user @ machine)登录计算机时,执行上面的命令并查看output.txt,VI编辑器在程序完成之前不会出现任何内容。如果我省略'nohup'和'&'在完成之前我甚至都不会获得任何shell输出。我的想法是它可能必须对ssh缓冲的数据做一些事情,但我更像是一个Linux新手。对于任何想法或解决方法,我将非常感激!

1 个答案:

答案 0 :(得分:1)

我会使用screen实用程序http://www.oreillynet.com/linux/cmd/cmd.csp?path=s/screen代替nohup。因此我可以将我的程序设置为分离状态(^ A ^ D)重新连接到主机,检索我的屏幕会话(屏幕-r) 并监视我的输出,好像我从未退出。