主页 > 路由器 > 私网Openwrt定时执行远程命令

私网Openwrt定时执行远程命令

2015年11月24日 私网Openwrt定时执行远程命令无评论 阅读: 11,343 次

一台Openwrt无线路由器,PPPOE拨号,拨号成功后有时分配的是私有地址,有时分配的是公网地址

 

一、实现Openwrt定时执行远程命令

在公网的网站上建立一个cmd.sh文件,里面有需要openwrt执行的命令,如reboot或重新拨号命令

openwrt定时获取网站上的cmd.sh文件,并执行

在openwrt的root目录下建立mycmd.sh文件,内容如下:

# 这里的-f参数判断文件是否存在

if [ -f "cmd.sh" ]; then
rm cmd.sh
fi

info=`wget http://xxxx.net/cmd.sh`
if [ -f "cmd.sh" ]; then
chmod 777 cmd.sh
./cmd.sh
fi

xxxx.net为网站地址。修改mycmd.sh文件为可执行

将mycmd.sh加入定时执行任务:crontab -e

0 */2 * * * /root/mycmd.sh

两小时执行一次,定时从网站获取cmd.sh文件并执行

 

二、自动重新拨号获取公网地址

修改网站上的cmd.sh内容:

for var in $(seq 1 10) ; do
echo $var
info=` ifconfig pppoe-wan |grep 'inet add'|awk -F ":" '{print $2}'|awk '{print $1}'`
echo "IP:${info}"
bb=`echo $info |grep '59.'|wc -l`
if [ $bb = 0 ]
then
ifup wan
sleep 60
else
break
fi
done

59.为公网地址,其他开头的如10.为私网地址,首先获取PPPOE地址,存入变量info,然后判断ip地址是否是59.开头的公网地址,如果不是则重新拨号(ifup wan ),尝试10次,如还不能获取公网地址则放弃。

 

发表评论

新用户的评论需审核后才会显示;

电子邮件地址不会被公开;
必填项已用*标注