我对 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 启动命令即可