在 crontab 中运行的脚本未在 shell 屏幕上给出输出

在 crontab 中运行的脚本未在 shell 屏幕上给出输出

我正在尝试通过 crontab 运行一个简单的 echo 脚本。我将其设置为每分钟运行一次,但它不会在 shell 屏幕上提供输出。但是,当我独立运行脚本时,它运行良好。

脚本

#!/bin/bash
echo "Test Script"

crontab 条目:

root@example-server ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
  *  *  *  *  * root /root/test.sh

答案1

cron 作业的输出不会显示到您的屏幕上。它不能——在作业运行时您甚至可能还没有登录!

cron 作业的输出通过电子邮件发送。一个工作的 UNIX 系统总是有一个独立于网络连接的本地电子邮件设施。如果您希望将本地电子邮件发送到远程帐户,请.forward在您的主目录中创建一个包含远程电子邮件地址的文件。一些发行版不要默认设置本地电子邮件,在这种情况下,cron 输出会消失在黑洞中。你需要一个邮件传输代理发送本地电子邮件。在单独的计算机上,将其配置为不接受来自网络的传入连接(大多数发行版都有一个简单的方法来设置它)。常见的 MTA 包括 Exim 和 Postfix;如果您的发行版有默认的 MTA,请选择它。

答案2

您必须将 echo 的输出重定向到某个文件

1.- 运行此命令:tty

它会告诉你类似 /dev/pts/X 检查数字 X

2.- 使用以下命令修改您的 cron 作业

crontab -e

*/1 * * * * echo "每分钟你好" > /dev/pts/X

这就是朋友。

相关内容