crontab ifconfig 没有输出任何内容

crontab ifconfig 没有输出任何内容

/home/我的名字/bin/脚本:

#!/bin/bash
ifconfig > /home/myname/foo

计划任务:

* * * * * /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。

答案1

ifconfig尝试在脚本中使用可执行文件的完整路径。

which ifconfig会给你路径。

我不知道ipconfig在 ubuntu 中有什么用处。:)

答案2

在 cron 任务中,您可能希望将 stdout 和 stderr 重定向到该文件。将脚本更改为以下内容:

#!/bin/bash
ifconfig &> /home/myname/foo

您将在输出文件中看到错误消息。

关于重定向有关更多信息,请参阅 Bash 编程指南。

答案3

crontab 不使用用户路径变量。

您必须将命令放置在其完整路径下。即/sbin/ifconfig。然后它才会起作用。

解决此问题的另一种方法是将 PATH 变量添加到脚本并导出,这样您的脚本将能够使用标准命令,而无需每次都添加完整路径。您可以echo $PATH在终端中输入路径进行检查。

答案4

您是否尝试过手动运行脚本?

进入 /home/myname/bin/

。/脚本

它是否使 foo 的内容符合预期?

该脚本可以执行吗?

我知道这听起来可能很简单,但有时这就是被忽视的,尤其是当我写剧本的时候

相关内容