将Cronjob输出redirect到正在运行的屏幕会话?

是否可以启动屏幕会话,设置一个cronjob,并将cronjob的输出redirect到屏幕会话? 遵循程序的输出会很好;-)

问候….

你可以在那个屏幕上使用tty命令findtty的path(应该是/dev/pts/12 ),然后在crontab中把所有输出redirect到那个path,就好像它是一个文件一样。

喜欢这个:

  1 2 3 4 5 myapp&> / dev / pts / 14 

grawity给出了一个很好的方法来做到这一点,但问题是,每次你重新启动屏幕/服务器的tty会改变。
您可以像写入(1)命令一样执行一个pipe道 | write user 。 这将发送一个消息给用户“用户”,你只需要有一个窗口打开用户在屏幕上看到的输出,但write将添加一些消息之前的标准输出值。

为什么不在cronjob中启动屏幕,然后启动你想在里面运行的任何东西? screen -d -m <command to run>应该做的伎俩。

作为半径提到的,没有办法知道你的屏幕会话将在任何时候使用tty或ttys ….甚至可能在屏幕上打开的许多伪ttys中的哪一个是你真正想要的输出发送到。

最好的办法是将cron作业的输出(stdout和stderr)redirect到一个文件,然后在屏幕上运行“tail -f”或“tail -F”。 这给你一个永久的日志文件,以及实时观看它的能力。

或者,根本不要redirect输出,等待作业完成 – 所有的输出将被邮寄给作业的所有者。