我正在尝试通过 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
这就是朋友。