注意
本文修改的rc.local文件为开机文件,语句插入到开机文件的倒数第二行,即【exit 0】前。
小米路由
开机文件/etc/rc.local 写入:
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash process=`ps | grep adbyby/adbyby | grep -v grep | wc -l` iptables=`iptables -t nat -L PREROUTING | grep 8118 | wc -l` if [ "$process" -eq "0" -o "$iptables" -eq "0" ] ; then echo "`date` restart $process $iptables" >> /extdisks/sda1/adbyby/log.txt pkill -9 adbyby /extdisks/sda1/adbyby/adbyby & iptables -t nat -D PREROUTING -p tcp ! -d 192.0.0.0/8 --dport 80 -j REDIRECT --to-ports 8118 iptables -t nat -A PREROUTING -p tcp ! -d 192.0.0.0/8 --dport 80 -j REDIRECT --to-ports 8118 else echo "`date` ok" >> /extdisks/sda1/adbyby/log.txt fi |
极路由
不想吐槽极路由所谓的开放,所有东西都遮遮掩掩,连个SD卡空间在ssh里都控制不了。
怎么把adbyby放到sd卡里就不研究了,shell里加上文件判断,在极路由升级后可以自动下载【极路由自动升级不会重置/etc/rc.local启动文件】
开机文件/etc/rc.local 写入:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
file=`ls /etc/adbyby | wc -l` process=`ps | grep adbyby/adbyby | grep -v grep | wc -l` iptables=`iptables -t nat -L PREROUTING | grep 8118 | wc -l` if [ "$file" -eq "0" ] ; then mkdir /etc/adbyby cd /etc/adbyby wget http://update.adbyby.com/download/7620n.tar.gz tar zxvf 7620n.tar.gz fi if [ "$process" -eq "0" -o "$iptables" -eq "0" -o "$file" -eq "0" ] ; then echo "`date` restart $process $iptables" >> /etc/adbyby/log.txt pkill -9 adbyby /etc/adbyby/bin/adbyby & iptables -t nat -D PREROUTING -p tcp ! -d 10.0.0.0/8 --dport 80 -j REDIRECT --to-ports 8118 iptables -t nat -A PREROUTING -p tcp ! -d 10.0.0.0/8 --dport 80 -j REDIRECT --to-ports 8118 else echo "`date` ok" >> /etc/adbyby/log.txt fi |
自用极路由,一劳永逸修改:
路由器开机检测adbyby文件夹是否存在,不存在就下载并建立check.sh,以防极路由升级导致adbyby消失。
使用极路由过程中发现有时候adbyby会被极路由kill掉,所以需要建立check.sh并加计划任务定期检查。
开机文件/etc/rc.local 写入:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
file=`ls /etc/adbyby | wc -l` ##文件不存在,可能极路由升级过 if [ "$file" -eq "0" ] ; then mkdir /etc/adbyby cd /etc/adbyby wget http://update.adbyby.com/download/7620n.tar.gz tar zxvf 7620n.tar.gz ##建立定期检测shell文件 cat > check.sh << EOF #!/bin/bash process=`ps | grep adbyby/adbyby | grep -v grep | wc -l` iptables=`iptables -t nat -L PREROUTING | grep 8118 | wc -l` if [ "\$process" -eq "0" -o "\$iptables" -eq "0" ] ; then echo "`date` restart \$process \$iptables" >> /etc/adbyby/log.txt pkill -9 adbyby /etc/adbyby/bin/adbyby & iptables -t nat -D PREROUTING -p tcp ! -d 10.0.0.0/8 --dport 80 -j REDIRECT --to-ports 8118 iptables -t nat -A PREROUTING -p tcp ! -d 10.0.0.0/8 --dport 80 -j REDIRECT --to-ports 8118 else echo "`date` ok" >> /etc/adbyby/log.txt fi EOF fi ##定期检测shell文件加入Crontab,未避免重复添加,先监测是否已经有crontab crontab=`crontab -l | grep adbyby | wc -l` if [ "$crontab" -eq "0" ] ; then crontab -l >/tmp/crontab.bak echo "*/10 * * * * sh /etc/adbyby/check.sh >/dev/null 2>&1" >>/tmp/crontab.bak crontab /tmp/crontab.bak fi ##进行一次检测 sh /etc/adbyby/check.sh |