您已经为时不远了,但有几个排序警告,可能会导致问题。许多系统对于ifconfig
输出行都有不同的格式。一些与inet xxx.xxx.xxx.xxx
,别人用inet addr:xxx.xxx.xxx.xxx
。 (这是最常见的两种)。您可能还需要处理多个有线inet接口(盒中的2+网卡)的情况。但是,如果只有1个网卡,你可以尝试以下处理共同ifconfig
格式:
DATE=`date +%Y-%m-%d`
IP_ADDR=$(ifconfig |
grep -v '127.0.0.1' |
grep -E 'inet[ ](addr:)*[0-9]{1,3}([.][0-9]{1,3}){3}' |
sed -e 's/^.*inet \(addr:\)*//' -e 's/ .*$//')
/bin/mkdir -p /mnt/db-backup/12/$DATE/$IP_ADDR/
或IP_ADDR
写成一行:
IP_ADDR=$(ifconfig | grep -v '127.0.0.1' | grep -E 'inet[ ](addr:)*[0-9]{1,3}([.][0-9]{1,3}){3}' | sed -e 's/^.*inet \(addr:\)*//' -e 's/ .*$//')
要找到你可以改变这个问题你脚本将ifconfig的输出保存在文件中。还有变量IP_ADDR。 – erik
都返回正确的值:10.1.1.3 –
顺便说一句,'grep的-v富| SED的/酒吧/巴兹/''是[无用使用'grep'](http://www.iki.fi/era/unix/award.html#grep),并且更好的写入'的sed -n' /富/!S /酒吧/巴兹/ p'' – tripleee