[英]Bash crontab doesn't output products of shell script file
嗨,我是学习Unix Bash的一年级游戏编程学生,试图理解crontab时遇到了一个问题。 我正在尝试做一些非常简单的事情,检查我是否在线,获取有关给定网站的信息,并ping另一个网站以确认其在线。 我的脚本文件确实完成了所有这一切,但是当我尝试通过crontab执行这些任务时,我收到的电子邮件绝对告诉我,不过是胡言乱语。 输出基本上只是告诉我我正在尝试做所有这些事情,但是没有输出结果。 我不确定我要去哪里。 只是为了验证我是否拥有使用crontab的系统权限,并且在我尝试使其运行时,我的脚本每分钟运行一次。 我希望有人能指出正确的方向,我在网上进行的所有研究确实使我误入歧途。
这是我的crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
HOME=/
LOGNAME=username
* * * * * /bin/bash /home/students/~/online.sh
30 23 1 * * rm online.log
这是我的剧本
touch online.log
who | grep username >> online.log ; whois yahoo.ca >> online.log ; ping -c 1 www.google.com >> online.log
如果要使用cron
执行脚本,则需要在脚本中使用绝对路径。
请注意, cron
在与在命令行中执行脚本时所获得的环境不同的环境中执行。 例如,更改如下行
touch online.log
包括online.log
的绝对路径 。
输出将被重定向到online.log
,因此您需要查看那里,而不是电子邮件中。 如果您希望输出也包含在电子邮件中,则应考虑使用tee
而不是重定向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.