繁体   English   中英

Bash crontab不输出Shell脚本文件的产品

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM