McB*_*McB 8 bash angstrom-linux
我正在使用以下代码将eth0的MAC地址转换为用于文件名的变量,但很少有人都可以使用.它不是永远不会工作,它是不可预测的.
ntpdate -b 0.centos.pool.ntp.org
DATE=$(date +%s)
MAC=$(ifconfig eth0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' | sed 's/://g')
cp logfile logfilecp-$MAC-$DATE
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用ntpdate行,它似乎工作频率较低,但无论如何,它完全不可预测.任何人都知道我能做些什么才能使这项工作变得更好?我最终得到了一个文件名
logfile--1375195808.bz2
Run Code Online (Sandbox Code Playgroud)
新信息
我已经将脚本设置为cronjob(crontab -e)运行.我注意到当它作为cronjob运行时,它不会获得MAC,但是当我手动运行时./runscript.bash它确实获得了MAC.希望有人知道为什么这可能导致它.
谢谢.
小智 32
尝试一种比通过ifconfig更简单的方法来获取mac地址,即
cat /sys/class/net/eth0/address
Run Code Online (Sandbox Code Playgroud)
我已经在shell中测试过它(不是通过脚本)并且像魅力一样:
TEST=`cat /sys/class/net/eth0/address`
touch /tmp/blabla-$TEST
Run Code Online (Sandbox Code Playgroud)
编辑你的第二个问题
在你的cron脚本中,添加你正在使用的二进制文件的完整路径(即/ sbin/ifconfig),或者使用我上面的方法:)