echo IP 地址问题

echo IP 地址问题

我正在尝试创建基本脚本,该脚本将在 cron 中每分钟运行一次。脚本script.sh是:

#!/bin/bash
DATE=`date +"%Y-%m-%d %H:%M:%S"`
IP=`ifconfig | grep "inet addr" | awk --field-separator ':' '{print $2}' | awk '{print $1}' | head -1`
echo "$DATE $IP" >> test.log

当我通过输入“ ./script.sh”运行此脚本时,我在 test.log 中以这种格式获得了 IP 地址(没关系):

2017-11-08 16:33:33 10.0.0.1
2017-11-08 16:34:33 10.0.0.1
2017-11-08 16:35:33 10.0.0.1

但是,当我创建这样的 cron 作业时:

* * * * * /path/to/my/script.sh

在 test.log 中我只有日期:

2017-11-08 16:36:13
2017-11-08 16:37:13
2017-11-08 16:38:13

但为什么?为什么我里面没有IP地址?你有什么主意吗?

答案1

date可能/bin/date并且是在$PATHcron 作业的默认值$PATH,与用户登录时的设置不同。

ifconfig很可能/sbin/ifconfig不在 中$PATH

更改ifconfig为明确的完整路径(例如)以在 cron 中/sbin/ifconfig运行。ifconfig

相关内容