/家庭/ MYNAME /斌/脚本:
#!/bin/bash ifconfig > /home/myname/foo
crontab的:
* * * * * /home/myname/bin/script
…等待1分钟…
@@ 11:35:51 [myname@comp - ~]$ ls foo -rw-r--r-- 1 myname myname 0 Jul 7 11:35 foo @@ 11:35:55 [myname@comp - ~]$
我不明白为什么foo会变成空的。 在命令行上运行ifconfig命令的工作方式与您所期望的完全一样,将其输出转储到文件中,就像正常一样。 作为参考,我正在运行的Ubuntu 8.04。
尝试在脚本中使用ifconfig可执行文件的完整path。
哪里ifconfig会给你的path。
我不知道Ubuntu的ipconfig是什么。 🙂
在cron作业中,您可能需要将stdout和stderrredirect到该文件。 将您的脚本更改为:
#!/bin/bash ifconfig &> /home/myname/foo
你会在输出文件中看到错误信息。
在Bash编程中查看所有关于redirect如何获取更多信息。
你有没有尝试手动运行你的脚本?
cd进入/ home / myname / bin /
。/脚本
它是否与预期的内容使foo?
脚本是可执行的吗?
我知道这可能听起来像简单的事情,但有时这是被忽视的,特别是当我做脚本时
crontab不使用用户pathvariables。
你必须把命令完整的path。 即/sbin/ifconfig 。 那么这将工作。
解决这个问题的其他方法是将PATHvariables添加到脚本中,然后将其导出,然后您的脚本将能够使用标准命令,而无需每次添加完整path。 您可以在terminal中检查pathinputecho $PATH 。