/home/myname/bin/脚本:
#!/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
在脚本中使用可执行文件的完整路径。which ifconfig
会给你路径。我不知道
ipconfig
在ubuntu中做什么。:)在 cron 作业中,您可能希望将 stdout 和 stderr 都重定向到文件。将您的脚本更改为:
您将在输出文件中看到错误消息。
有关更多信息,请参阅Bash Programming How To 中的所有关于重定向的信息。
crontab 不使用用户路径变量。
您必须放置带有完整路径的命令。即
/sbin/ifconfig
。然后这将起作用。解决此问题的其他方法是将 PATH 变量添加到脚本并将其导出,然后您的脚本将能够使用标准命令,而无需每次都添加完整路径。
echo $PATH
您可以在终端中检查路径输入。您是否尝试过手动运行脚本?
cd 到 /home/myname/bin/
。/脚本
它是否使 foo 具有预期的内容?
脚本可执行吗?
我知道这听起来可能很简单,但有时这是被忽视的,尤其是当我制作脚本时