0

我有一个可以运行很长时间的程序,这个程序在远程服务器上编辑和运行。我用办公室的电脑远程连接服务器并运行它。进度显示在我办公室电脑的电脑屏幕上...

我想在家里看到输出,我如何捕捉办公室电脑屏幕上的输出并在家里看到结果?

我考虑将输出写入文件,但我需要关闭该文件。所以我应该打开文件然后写输出,关闭..再次打开?

谢谢

我不知道应该使用正确的标签,但程序是用 perl 编写的......

4

3 回答 3

2

为什么不直接重定向到日志文件并对其进行尾部处理(或将其加载到编辑器等)?

$ myprog.pl >/tmp/logfile 2>&1

以上将您的输出重定向到日志文件(/tmp/logfile- 您可能希望选择更好的位置,因为/tmp它是临时的并且可以在重新启动期间被丢弃)并将 stdout/stderr 重定向到同一个位置。请注意,这会捕获程序的输出,您无需修改​​脚本。

另一种方法是在屏幕内运行程序

也许最有用的功能之一是您可以在注销后重新连接到您的会话,移动到另一台计算机或断开连接,并继续工作,就像什么都没发生一样。您的所有编辑会话、shell 窗口等都将在您离开时出现。

于 2013-03-14T09:10:14.587 回答
2

你可以tee

your_program.pl | tee logfile.txt

logfile.txt并在家中查看最新结果

tail -f logfile.txt
于 2013-03-14T09:22:26.690 回答
1

就个人而言,我使用screen这种东西。

  • 连接到服务器
  • 输入命令screen。它会显示一条很好的消息,说明它的版本screen以及它在 GPL 下。
  • 运行实际命令。
  • 在任何时候,点击ctrl-A,D以断开screen会话。您将看到一条类似 的消息[detached from pid.tty.server]。正常从服务器注销。
  • 再次连接到服务器并输入命令screen -x以重新连接到您的会话。
于 2013-03-14T09:47:14.843 回答