如何在cronjob中执行命令以在终端中显示输出

如何在cronjob中执行命令以在终端中显示输出

我对 cronjob 有一个查询,如果我使用 cronjob 执行命令,是否可以在终端中显示输出而不是保存在输出文件中。

例如说

 */2 * * * root /bin/ping xx.xx.xx.xx 

输出应显示在终端中。我试过它不显示在终端中。我需要在 cronjob 中更改任何内容。

预先感谢维诺斯

答案1

你不能这样做。

所有cron作业都在非交互式 shell 中运行,没有终端附件。因此 或类似的概念/dev/tty在 中不可用cron

答案2

肮脏的方法可能是将程序的输出重定向到现有终端的 pts 文件。

要知道 pts 文件只需输入 tty 命令

~$ tty  
/dev/pts/19

那么你的 crontab 将是:

* * * * * /usr/local/scripts/script.sh > /dev/pts/19

答案3

您可以在 crond 中输入命令,如下所示:

*/2 * * * root /bin/ping xx.xx.xx.xx | tee ~/my_output_from_crond.log

在终端类型中:

touch ~/my_output_from_crond.log
tail -f ~/my_output_from_crond.log

现在只需等待 crond 启动命令即可

相关内容