嗨,我编写了以下bash脚本:
cat /home/xyz/wlandiscovery.sh
#!/bin/bash
DATE=`date +%d-%m-%Y__%H:%M:%S`
#Get the current standard interface e.g. eth0
INTERFACE=`route | grep '*' | awk '{print $8}'`
#Check if mac is available
if /usr/bin/arp-scan --interface $INTERFACE -l -r 5 | grep "xx:xx:xx:xx:xx:xx"
then
echo -e "$DATE AVAILABLE!" >> /home/xyz/wlandiscovery.log
else
echo -e "$DATE NOT AVAILABLE" >> /home/xyz/wlandiscovery.log
fi
exit 0
如果我运行此程序,并且mac可用,则显示“ AVAILABLE”,如果我断开设备的连接,则显示“ NOT AVAILABLE” ...因此按预期运行。
但是,如果我每隔5分钟以Cronjob的身份运行它,那么我总是“不可用” :(在Debian系统上)
crontab -e
#......
*/5 * * * * /bin/bash /home/xyz/wlandiscovery.sh
这里有什么问题?
INTERFACE=`route | grep '*' | awk '{print $8}'`
在我的系统上,路线为/usr/sbin/route
。/usr/sbin
很可能不在cron的路径中。指定完整路径:
INTERFACE=`/usr/sbin/route | awk '$2 == "*" {print $8}'`
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句