我有一个程序会运行很长时间,这个程序编辑并在远程服务器上运行。我使用 办公室中的计算机远程连接服务器并运行它。进度显示在我办公室电脑的电脑屏幕上......
我想看看家里的输出,如何捕捉办公室电脑屏幕上的输出并在家看到结果?
我考虑将输出写入文件,但我需要关闭该文件。所以我应该打开文件然后写输出,关闭..再打开?
感谢
我不知道应该使用正确的标签,但该程序是用perl编写的......
答案 0 :(得分:2)
为什么不直接重定向到日志文件并tail(或在编辑器等中加载)?
$ myprog.pl >/tmp/logfile 2>&1
以上将您的输出重定向到日志文件(/tmp/logfile
- 您可能希望选择一个更好的位置,因为/tmp
是临时的并且可以在重新启动期间被删除)并将stdout / stderr重定向到一样的地方。请注意,这会捕获程序的输出,您无需修改脚本。
另一种方法是在screen
中运行您的程序也许最有用的功能之一是您可以重新连接 注销,移动到另一台计算机或获取后,您的会话 断开连接,并继续工作,好像什么也没发生。你的全部 编辑会话,shell窗口等将在您离开时就在那里 它们。
答案 1 :(得分:2)
你可以tee
your_program.pl | tee logfile.txt
使用
查看家中logfile.txt
的最新结果
tail -f logfile.txt
答案 2 :(得分:1)
就个人而言,我使用screen
来做这类事情。
screen
。它显示一条很好的消息,说明screen
的版本,并且它在GPL下。ctrl-A
,D
与screen
会话断开连接。您会看到[detached from pid.tty.server]
行的消息。正常退出服务器。screen -x
以重新连接到您的会话。