老毛子 小米 Mini Padavan固件[脚本备份]

封尘的小米Mini 刷了 Padavan 固件后很好用,现在备份一下 固件里面的脚本,以备不时只需。

 

固件

[2015-12-24]RT-AC54U-GPIO-30-xiaomimini-128M_3.4.3.9-097-12-24

 

 

运行路由器初始化之前

  1. #!/bin/sh
  2. ### Custom user script for tuning router before start
  3. ########################################################
  4. ### tune linux kernel
  5. ########################################################
  6. # backlog for UNIX sockets
  7. echo 64       > /proc/sys/net/unix/max_dgram_qlen
  8. # igmp
  9. echo 30       > /proc/sys/net/ipv4/igmp_max_memberships
  10. # arp
  11. echo 1        > /proc/sys/net/ipv4/conf/all/arp_announce
  12. echo 1        > /proc/sys/net/ipv4/conf/default/arp_announce
  13. # neigh ipv4
  14. echo 256      > /proc/sys/net/ipv4/neigh/default/gc_thresh1
  15. echo 1024     > /proc/sys/net/ipv4/neigh/default/gc_thresh2
  16. echo 2048     > /proc/sys/net/ipv4/neigh/default/gc_thresh3
  17. # ipv6
  18. if [ -d /proc/sys/net/ipv6 ] ; then
  19.   echo 256    > /proc/sys/net/ipv6/neigh/default/gc_thresh1
  20.   echo 1024   > /proc/sys/net/ipv6/neigh/default/gc_thresh2
  21.   echo 2048   > /proc/sys/net/ipv6/neigh/default/gc_thresh3
  22.   echo 16384  > /proc/sys/net/ipv6/route/max_size
  23. fi
  24. # reverse-path filter
  25. echo 1        > /proc/sys/net/ipv4/conf/default/rp_filter
  26. echo 1        > /proc/sys/net/ipv4/conf/eth2/rp_filter
  27. # conntrack
  28. echo 0        > /proc/sys/net/netfilter/nf_conntrack_checksum
  29. echo 1        > /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal
  30. echo 300      > /proc/sys/net/netfilter/nf_conntrack_generic_timeout
  31. echo 1800     > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established
  32. echo 30       > /proc/sys/net/netfilter/nf_conntrack_icmp_timeout
  33. echo 50       > /proc/sys/net/netfilter/nf_conntrack_udp_timeout
  34. # panic
  35. echo 1        > /proc/sys/kernel/panic
  36. echo 1        > /proc/sys/kernel/panic_on_oops
  37. echo 0        > /proc/sys/vm/panic_on_oom

 

运行路由器启动后

  1. #!/bin/sh
  2. ### Custom user script
  3. ### Called after router started and network is ready
  4. ### Example - load ipset modules
  5. #modprobe ip_set
  6. #modprobe ip_set_hash_ip
  7. #modprobe ip_set_hash_net
  8. #modprobe ip_set_bitmap_ip
  9. #modprobe ip_set_list_set
  10. #modprobe xt_set
  11. ### 创建子程序脚本
  12. /etc/storage/script2_script.sh
  13. /etc/storage/script3_script.sh
  14. ### SD卡挂载
  15. /sbin/automount.sh mmcblk0p1 AiDisk_01
  16. ### 运行脚本1
  17. sleep 10
  18. /etc/storage/script1_script.sh
  19. /etc/storage/ez_buttons_script.sh 3 &
  20. logger -t "运行路由器启动后" "脚本完成"
  21. kmsserver()
  22. {
  23. if [ -s "/usr/bin/vlmcsd" ] ;then
  24. cat > "/tmp/vlmcsd.ini" <<-\EOF
  25. #开头的数字符号(#)或分号(;)的每一行被视为注释;删除(;)启用指定选项。
  26. #ePID/HwId设置为Windows显式
  27. 55c92734-d682-4d71-983e-d6ec3f16059f = 06401-00206-271-392041-03-1033-9600.0000-3622014 / 01 02 03 04 05 06 07 08
  28. #ePID设置为Office2010(包含Visio和Project)显式
  29. 59a52881-a989-479d-af46-f275c6370663 = 06401-00096-199-496023-03-1033-9600.0000-3622014
  30. #ePID设置为Office2013(包含Visio和Project)显式
  31. 0ff1ce15-a989-479d-af46-f275c6370663 = 06401-00206-234-409313-03-1033-9600.0000-3622014
  32. #使用自定义TCP端口
  33. ;Port = 1688
  34. #监听所有IPv4地址(默认端口1688)
  35. ;Listen = 0.0.0.0:1688
  36. #监听所有IPv6地址(默认端口1688)
  37. ;Listen = [::]:1688
  38. #程序启动时随机ePIDs(只有那些未显式指定的)
  39. ;RandomizationLevel = 1
  40. #在ePIDs中使用特定区域 (1033 = 美国英语),即使ePID是随机的
  41. ;LCID = 1033
  42. #设置最多4个同时工作(分叉进程或线程)
  43. ;MaxWorkers = 4
  44. #闲置30秒后断开用户
  45. ;ConnectionTimeout = 30
  46. #每次请求后立即断开客户端
  47. ;DisconnectClientsImmediately = yes
  48. #写一个pid文件(包含vlmcsd的进程ID的文件)
  49. ;PidFile = /var/run/vlmcsd.pid
  50. #写日志到/var/log/vlmcsd.log
  51. ;LogFile = /var/log/vlmcsd.log
  52. #创建详细日志
  53. ;LogVerbose = true
  54. #设置激活间隔2小时
  55. ;ActivationInterval = 2h
  56. #设置更新间隔7天
  57. ;RenewalInterval = 7d
  58. #运行程序的用户为vlmcsduser
  59. ;user = vlmcsduser
  60. #运行程序的组为vlmcsdgroup
  61. ;group = vlmcsdgroup
  62. #禁用或启用RPC的NDR64传输语法(默认启用)
  63. ;UseNDR64 = true
  64. #禁用或启用RPC的绑定时间特性协商(默认启用)
  65. ;UseBTFN = true
  66. EOF
  67. chmod 777 "/tmp/vlmcsd.ini"
  68. /usr/bin/vlmcsd -i /tmp/vlmcsd.ini -l /tmp/vlmcsd.log &
  69. computer_name=`nvram get computer_name`
  70. sed -Ei '/_vlmcs._tcp/d' /etc/storage/dnsmasq/dnsmasq.conf
  71. echo "srv-host=_vlmcs._tcp,$computer_name,1688,0,100" >> /etc/storage/dnsmasq/dnsmasq.conf
  72. restart_dhcpd
  73. fi
  74. }
  75. #kmsserver
  76. # Office手动激活命令:
  77. # cd C:\Program Files\Microsoft Office\Office15
  78. # cscript ospp.vbs /sethst:192.168.1.1
  79. # cscript ospp.vbs /act
  80. # cscript ospp.vbs /dstatus
  81. # windows手动激活命令
  82. # slmgr.vbs /upk
  83. # slmgr.vbs /skms 192.168.1.1
  84. # slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
  85. # slmgr.vbs /ato
  86. # slmgr.vbs /xpr
  87. # key查看
  88. # cat /etc/storage/key

 

按WPS / FN 运行按钮脚本

  1. #!/bin/sh
  2. ### Custom user script
  3. ### Called on WPS or FN button pressed
  4. ### $1 - button param
  5. [ -x /opt/bin/on_wps.sh ] && /opt/bin/on_wps.sh $1 &
  6. #copyright by hiboy
  7. [ -f /tmp/button_script.lock ] && exit 0
  8. touch /tmp/button_script.lock
  9. # 按钮名称可自定义
  10. nvram set button_script_1_s="ADbyby"
  11. nvram set button_script_2_s="SS"
  12. case "$1" in
  13. 1)
  14. # 按钮①子程序 名称可自定义
  15. button1=`nvram get button_script_1_s`
  16. logger -t "【按钮①】" "$button1"
  17. apply=`nvram get button_script_1`
  18. # 按钮①状态0时执行以下命令
  19. if [ "$apply" = 0 ]; then
  20. nvram set button_script_1="1"
  21. port=$(iptables -t nat -L | grep 'ports 8118' | wc -l)
  22. PIDS=$(ps | grep "/tmp/adbyby" | grep -v "grep" | wc -l)
  23. if [ "$port" = 0 ] && [ "$PIDS" = 0 ]; then
  24. logger -t "【按钮①】" "添加ADbyby转发规则、启动ADbyby"
  25. rm -f /tmp/cron_adb.lock
  26. /tmp/adbyby >/dev/null 2>&1 &
  27. sleep 2
  28. /tmp/sh_adb8118.sh A &
  29. nvram set button_script_1="1"
  30. rm -f /tmp/cron_adb.lock
  31. fi
  32. fi
  33. # 按钮①状态1 执行以下命令
  34. if [ "$apply" = 1 ]; then
  35. nvram set button_script_1="0"
  36. port=$(iptables -t nat -L | grep 'ports 8118' | wc -l)
  37. PIDS=$(ps | grep "/tmp/adbyby" | grep -v "grep" | wc -l)
  38. if [ "$port" -ge 1 ] && [ "$PIDS" != 0 ]; then
  39. logger -t "【按钮①】" "关闭ADbyby转发规则、关闭ADbyby"
  40. touch /tmp/cron_adb.lock
  41. /tmp/sh_adb8118.sh D &
  42. sleep 2
  43. killall -15 adbyby
  44. killall -9 adbyby
  45. nvram set button_script_1="0"
  46. touch /tmp/cron_adb.lock
  47. fi
  48. fi
  49. if [ ! -s "/tmp/adbyby" ]; then
  50. logger -t "【按钮①】" "找不到adbyby文件,请检查配置是否启动"
  51. /tmp/sh_adb8118.sh D &
  52. killall -15 adbyby
  53. killall -9 adbyby
  54. fi
  55. rm -f /tmp/button_script.lock
  56. /etc/storage/ez_buttons_script.sh 3 &
  57.   ;;
  58. 2)
  59. # 按钮②子程序
  60. button2=`nvram get button_script_2_s`
  61. logger -t "【按钮②】" "$button2"
  62. apply=`nvram get button_script_2`
  63. shadowsockssh="/tmp/AiDisk_00/shadowsocks/shadowsocks"
  64. # 按钮②状态0 执行以下命令
  65. if [ "$apply" = 0 ]; then
  66. nvram set button_script_2="1"
  67. PROCESS=$(ps | grep "ss-redir" | grep -v "grep")
  68. if [ -z "$PROCESS" ] && [ -s "/tmp/AiDisk_00/shadowsocks/shadowsocks" ]; then
  69. logger -t "【按钮②】" "启动shadowsocks进程"
  70. rm -f /tmp/cron_ss.lock
  71. $shadowsockssh off_on
  72. rm -f /tmp/cron_ss.lock
  73. nvram set button_script_2="1"
  74. fi
  75. fi
  76. # 按钮②状态1时执行以下命令
  77. if [ "$apply" = 1 ]; then
  78. nvram set button_script_2="0"
  79. PROCESS=$(ps | grep "ss-redir" | grep -v "grep")
  80. if [ ! -z "$PROCESS" ] && [ -s "/tmp/AiDisk_00/shadowsocks/shadowsocks" ]; then
  81. logger -t "【按钮②】" "关闭shadowsocks进程"
  82. touch /tmp/cron_ss.lock
  83. $shadowsockssh off_on
  84. touch /tmp/cron_ss.lock
  85. nvram set button_script_2="0"
  86. fi
  87. fi
  88. if [ ! -s "/tmp/AiDisk_00/shadowsocks/shadowsocks" ]; then
  89. logger -t "【按钮②】" "opt缺少/tmp/AiDisk_00/shadowsocks/shadowsocks文件"
  90. logger -t "【按钮②】" "请检查配置是否启动shadowsocks"
  91. logger -t "【按钮②】" "请更新opt文件夹,检查U盘文件和Entware设置"
  92. fi
  93. rm -f /tmp/button_script.lock
  94. /etc/storage/ez_buttons_script.sh 3 &
  95.   ;;
  96. 3)
  97. # 按钮状态检测子程序
  98. port=$(iptables -t nat -L | grep 'ports 8118' | wc -l)
  99. if [ "$port" -ge 1 ]; then
  100. nvram set button_script_1="1"
  101. else
  102. nvram set button_script_1="0"
  103. fi
  104. PROCESS=$(ps | grep "ss-redir" | grep -v "grep")
  105. if [ -z "$PROCESS" ]; then
  106. nvram set button_script_2="0"
  107. else
  108. [ -s "/tmp/AiDisk_00/shadowsocks/shadowsocks" ] && nvram set button_script_2="1"
  109. fi
  110.   ;;
  111. esac
  112. rm -f /tmp/button_script.lock

 

自定义脚本0功能详细配置:adbyby、ShadowSocks、DDNS、迅雷等功能详细设置

  1. #!/bin/sh
  2. #copyright by hiboy
  3. [ -f /tmp/script0.lock ] && exit 0
  4. touch /tmp/script0.lock
  5. #↓↓↓功能详细设置(应用设置重启后生效,不能断电重启,要点击右上角重启按钮)↓↓↓
  6. #多次检测断线后自动重启功能 reb_0关闭;reb_1启动
  7. touch /tmp/reb_0.lock
  8. # adbyby 功能 0关闭;1启动
  9. adbybys=0
  10. adbybyfile='http://code.taobao.org/svn/padavanrt-n56uopt/7620v151210.tgz'
  11. adbybyfile2='http://update.adbyby.com/download/7620n.tar.gz'
  12. #CPU占用率较高时自动关闭adbyby 功能 0关闭;1启动 (其他进程占用过高也会关闭adbyby)
  13. CPUAverages=0
  14. # 加载第三方adblock规则【不建议启用第三方规则】 0关闭;1启动(可选项:删除前面的#可生效)
  15. adblocks=0
  16. cat > "/tmp/rule_DOMAIN.txt" <<-\EOF
  17. # 【可选多项,会占用内存:删除前面的#可生效】
  18. # 【ckaiuang个人收集】ADP规则分享[2015.8.16重新整理和验证规则说明和地址]
  19. # [综合型]【1】—EasyList China[cjx82630]
  20. # https://easylist-downloads.adblockplus.org/easylistchina.txt
  21. # 规则说明:EasyList China主要包含原ChinaList(2014.3.25止约2900条规则)、原cjxlist(对前者的补充,2014.3.21止约2500条规则)。
  22. # [综合型]【2】—EasyList Lite[cjx82630]
  23. # https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt
  24. # 规则说明:EasyList Lite是EasyList的精简,即只收录在中文网站能用到的EasyList规则。约300多K,适合较少访问外国网站的用户。占用内存少。
  25. # [补充型]【3】—CJX's Annoyance List[cjx82630]
  26. # https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjx-annoyance.txt
  27. # 规则说明:过滤烦人的自我推广,并作为EasyPrivacy的补充。
  28. # [隐私保护型]【4】—EasyPrivacy
  29. # https://easylist-downloads.adblockplus.org/easyprivacy.txt
  30. # 规则说明:EasyPrivacy是附属于EasyList的补充型订阅规则。用于尽可能阻止网站及广告商在内的第三方用户跟踪脚本,以减少用户浏览历史被记录,从而保护您的个人资料。这些脚本一般被用于网站精确广告投放的数据统计。因此,只要不过滤用户跟踪脚本,广告商就知道你详细的浏览记录。这些广告商包括百度,google,51,CNZZ等。
  31. # [综合型]【5】—TW过滤规则[xwhyc]
  32. # http://bbs.theworld.cn/attachment.php?aid=MTE0NDQ4fDUyZjc3Mjc3fDEzOTc5MTM1OTh8NDczMHBuYytiNk1yR0dQa2lqdGFyOXg1R29QNEVaUjJoYTNIb0U4bXFHeVM0eGM%3D
  33. # 规则说明:本规则为完全独立规则,非其他规则辅助规则,以简洁、效率为主,建议只安装本规则
  34. # [补充型]【6】—Simple List
  35. # https://raw.githubusercontent.com/JixunMoe/SimpleList/master/build/SimpleList.txt
  36. # 规则说明:对ChinaList的一些查漏补缺。
  37. # [组合型]【7】—Fanboy Ultimate List[Fanboy旗舰]
  38. # https://secure.fanboy.co.nz/r/fanboy-ultimate.txt
  39. # [备用]https://www.fanboy.co.nz/r/fanboy-ultimate.txt
  40. # 规则说明:该规则包含Easylist、Easyprivacy、Enhanced Trackers List和Annoyances List。
  41. # 1、EasyList是主要的订阅规则,清除网页广告以及不必要的框架、图像和对象;
  42. # 2、EasyPrivacy是附属于EasyList的补充型订阅规则。用于尽可能阻止网站及广告商在内的第三方用户跟踪脚本,以减少用户浏览历史被记录,从而保护您的个人资料。这些脚本一般被用于网站精确广告投放的数据统计。因此,只要不过滤用户跟踪脚本,广告商就知道你详细的浏览记录。这些广告商包括百度,google,51,CNZZ等;
  43. # 3、Enhanced Trackers List用于过滤用户跟踪脚本的过滤,可能是EasyPrivacy的补充;
  44. # 4、Fanboy-Annoyances List能删除网上的烦恼,从而大大减少网页加载时间;
  45. # 5、Fanboy Social List移除社交媒体的反馈数据;
  46. # 6、Fanboy Complete List包含Easylist、Easyprivacy和Enhanced Trackers List。
  47. # http://code.taobao.org/svn/padavanrt-n56uopt/userh.txt
  48. EOF
  49. # 添加过滤白名单地址 0关闭;1启动 (可选项:删除前面的#可生效)
  50. whitelist=0
  51. whitehost=qq.com,bilibili.com,acfun.tv
  52. # opt 自动更新(替换覆盖opt文件夹) 0关闭;1启动
  53. upopt=0
  54. #【1;安装到U盘(installs=1)】请设置:
  55. # ①删除U盘根目录"opt"文件夹(自动安装时会自动创建)
  56. # ②USB 应用程序 - 其它设置 - 允许运行Optware?选择"Entware"
  57. #
  58. #【2;安装到内存(installs=2),需要空余内存:10M】请设置:
  59. # ①没有百度云、迅雷
  60. # ②USB 应用程序 - 其它设置 - 允许运行Optware?选择"否"
  61. installs=1
  62. ssfile='http://code.taobao.org/svn/padavanrt-n56uopt/optupanv.tgz'
  63. ssfile2='http://code.taobao.org/svn/padavanrt-n56uopt/opttmpv.tgz'
  64. # 轻量级隧道代理shadowsocks 功能【0关闭】;【1智能代理,请选择方案】;【2全部走代理】
  65. ssproxys=0
  66. #【gfwlists=1;方案一SS+pdnsd+chinadns,国外站点走代理】
  67. #【gfwlists=2;方案二SS+pdnsd+gfwlist(推荐),只有被墙的站点才走代理】
  68. gfwlists=2
  69. # 部署Pcap_DNSProxy (替换ChinaDNS、pdnsd) 0关闭;1启动
  70. DNSProxy=0
  71. # udprelay(UDP代理)SS+ss_tunnel(请确认服务器是否支持UDP转发) 0关闭;1启动
  72. udprelay=0
  73. # shadowsocks 服务器配置
  74. server_ip=100.100.100.100
  75. server_port=1024
  76. server_password=Hello123World
  77. server_method=aes-256-cfb
  78. # 加密方式按需选择,table,rc4,rc4-md5,aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, camellia-128-cfb, camellia-192-cfb, camellia-256-cfb, cast5-cfb, des-cfb
  79. local_port=1080
  80. cat > "/tmp/gfwlist_DOMAIN.txt" <<-\EOF
  81. # 方案二SS的gfwlist添加例子
  82. server=/.tvb.com/208.67.222.222#443
  83. ipset=/.tvb.com/gfw_black_list
  84. server=/.steampowered.com/208.67.222.222#443
  85. ipset=/.steampowered.com/gfw_black_list
  86. server=/.github.io/208.67.222.222#443
  87. ipset=/.github.io/gfw_black_list
  88. EOF
  89. # syncy 功能 0关闭;1启动(需要插入U盘安装opt)
  90. syncys=0
  91. #SyncY配置文件路径(写字板打开修改):\\192.168.1.1\Media\AiDisk_a1\opt\etc\syncy
  92. #配置说明:http://www.syncy.cn/index.php/syncyconfighelp/"
  93. #可以多个同步目录,直接复制一个config syncpath配置节,然后修改相应的localpath、remotepath等就可以了
  94. #默认模式:upload+
  95. #同步模式类型:upload,upload+,download,download+,sync
  96. # 迅雷远程下载 功能(需要插入U盘安装opt)【0关闭】;【1启动】说明看系统日志
  97. xunleis=0
  98. # 迅雷快鸟 功能【0关闭】;
  99. #【FastDicks=1插U盘启动】
  100. #【FastDicks=2免U盘启动】
  101. #【2免U盘启动】需要填写在下方的【迅雷快鸟脚本】,生成脚本两种方法:
  102. # ①插入U盘,配置自定义脚本【1插U盘启动】启动快鸟一次即可自动生成
  103. # ②打开https://github.com/fffonion/Xunlei-FastDick,按照网页的说明在PC上运行脚本,登陆成功后会生成swjsq_wget.sh,把swjsq_wget.sh的内容粘贴此处即可
  104. # 生成后需要到【系统管理】 - 【恢复/导出/上传设置】 - 【路由器内部存储 (/etc/storage)】【提交】保存脚本
  105. FastDicks=0
  106. uid="账号"
  107. pwd="密码"
  108. # DDNS(删除#/tmp/sh_ddns.sh前面的#即可启动命令)
  109. #/tmp/sh_ddns.sh /tmp/orayddns.log 'http://您的花生壳帐号:您的帐号密码@ddns.oray.com/ph/update?&hostname=你的ddns域名' &
  110. #/tmp/sh_ddns.sh /tmp/3322ddns.log 'http://DDNS用户名:DDNS密码@members.3322.org/dyndns/update?hostname=你的ddns域名' &
  111. #/tmp/sh_ddns.sh /tmp/oyeddns.log 'http://www.gwa2011.com/nsupdate.php?ddns_name=昵称&ddns_password=密码' &
  112. ###注册地址http://www.gwa2011.com/
  113. # 花生壳内网版【0关闭】;【1启动】需要插入U盘安装opt
  114. phddns=0
  115. #↑↑↑功能详细设置↑↑↑
  116. echo "" > /var/log/shadowsocks_watchdog.log
  117. echo "" > /var/log/Pcap_DNSProxy_watchdog.log
  118. echo "" > /var/log/chinadns_watchdog.log
  119. upopt()
  120. {
  121. rm -f /tmp/optv.txt
  122. wget -O "/tmp/optv.txt" "http://code.taobao.org/svn/padavanrt-n56uopt/optv.txt"
  123. if [ $(cat /tmp/optv.txt) != $(cat /opt/optv.txt) ] && [ -f /tmp/optv.txt ]; then
  124. if [ "$upopt" != "0" ] ; then
  125. logger -t "【opt】" "opt需要更新,自动启动更新"
  126. rm -f /opt/optv.txt
  127. else
  128. logger -t "【opt】" "opt需要更新,请启动自动更新或手动更新"
  129. fi
  130. else
  131. logger -t "【opt】" "opt不需更新"
  132. fi
  133. }
  134. logger -t "自定义脚本0" "脚本完成"
  135. rm -f /tmp/script0.lock

 

自定义脚本1

  1. #!/bin/sh
  2. #copyright by hiboy
  3. [ -f /tmp/script1.lock ] && exit 0
  4. touch /tmp/script1.lock
  5. . /etc/storage/script0_script.sh
  6. http_username=`nvram get http_username`
  7. export PATH=/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin:/usr/sbin:/usr/bin:/sbin:/bin
  8. export LD_LIBRARY_PATH=/opt/lib:/lib
  9. /tmp/sh_dnsmasqs.sh 0
  10. sed -Ei '/taobao.org/d' /etc/storage/dnsmasq/dnsmasq.servers
  11. echo 'server=/taobao.org/223.5.5.5' >> /etc/storage/dnsmasq/dnsmasq.servers
  12. restart_dhcpd
  13. /etc/storage/inet_state_script.sh 20
  14. baidu='http://passport.baidu.com/passApi/img/small_blank.gif'
  15. /tmp/sh_download.sh /tmp/small_blank.gif $baidu
  16. rb=1
  17. while [ ! -s /tmp/small_blank.gif ];
  18. do
  19. logger -t "自定义脚本1" "等待联网后开始脚本"
  20. sleep 20
  21. /tmp/sh_download.sh /tmp/small_blank.gif $baidu
  22. rb=`expr $rb + 1`
  23. if [ "$rb" -gt 3 ] ; then
  24. logger -t "自定义脚本1" "等待联网超时"
  25. exit
  26. fi
  27. done
  28. rm -f /tmp/small_blank.gif
  29. cat > "/tmp/sh_downloads_adblock.sh" <<-EOF
  30. #!/bin/sh
  31. adblocks=$adblocks
  32. lazy="http://update.adbyby.com/rule3/lazy.txt"
  33. video="http://update.adbyby.com/rule3/video.txt"
  34. rm -f /tmp/data/lazy.txt
  35. rm -f /tmp/data/video.txt
  36. rm -f /tmp/data/lazy.bin
  37. rm -f /tmp/data/video.bin
  38. rm -f /tmp/data/user.bin
  39. rm -f /tmp/data/user.txt
  40. sed -e '/.*update.adbyby.com/d' -i /etc/storage/dnsmasq/hosts
  41. restart_dhcpd
  42. sleep 5
  43. /tmp/sh_download.sh /tmp/data/lazy.txt \$lazy
  44. /tmp/sh_download.sh /tmp/data/video.txt \$video
  45. #echo '127.0.0.1 update.adbyby.com' >> /etc/storage/dnsmasq/hosts
  46. restart_dhcpd
  47. if [ "\$adblocks" != "0" ] ; then
  48. mkdir -p /tmp/data
  49. logger -t "adbyby" "下载adblock规则"
  50. while read line
  51. do
  52. c_line=\`echo \$line |grep -v "#"\`
  53. if [ ! -z "\$c_line" ] ; then
  54. rm -f /tmp/data/user2.txt
  55. logger -t "adbyby" "下载规则:\$line"
  56. /tmp/sh_download.sh /tmp/data/user2.txt \$line
  57. grep -v '^!' /tmp/data/user2.txt | grep -E '^(@@\\||\\||[[:alnum:]])' | sort -u  >> /tmp/data/user.txt
  58. rm -f /tmp/data/user2.txt
  59. fi
  60. done < /tmp/rule_DOMAIN.txt
  61. fi
  62. grep -v '^!' /etc/storage/adbyby_rules_script.sh >> /tmp/data/user.txt
  63. EOF
  64. chmod 777 "/tmp/sh_downloads_adblock.sh"
  65. cat > "/tmp/sh_white_list.sh" <<-EOF
  66. #!/bin/sh
  67. whitelist=$whitelist
  68. if [ "\$whitelist" != "0" ] ; then
  69. logger -t "adbyby" "添加过滤白名单地址"
  70. logger -t "adbyby" "加白地址:$whitehost"
  71. echo whitehost=$whitehost >> /tmp/adhook.ini
  72. fi
  73. EOF
  74. chmod 777 "/tmp/sh_white_list.sh"
  75. cat > "/tmp/sh_func_load_adbyby.sh" <<-EOF
  76. #!/bin/sh
  77. adbybys=$adbybys
  78. adbybyfile=$adbybyfile
  79. adbybyfile2=$adbybyfile2
  80. adblocks=$adblocks
  81. CPUAverages=$CPUAverages
  82. if [ "\$adbybys" != "0" ] && [ ! -f /tmp/cron_adb.lock ]; then
  83. touch /tmp/cron_adb.lock
  84. killall sh_mon.sh
  85. killall sh_CPUAverage.sh
  86. /tmp/sh_adb8118.sh D
  87. killall -15 adbyby
  88. killall -9 adbyby
  89. if [ ! -s "/tmp/adbyby" ] ;then
  90. rm -f /tmp/adbyby
  91. logger -t "adbyby" "开始下载7620n.tar.gz"
  92. /tmp/sh_download.sh /tmp/7620n.tar.gz \$adbybyfile \$adbybyfile2
  93. /tmp/sh_untar.sh /tmp/7620n.tar.gz /tmp /tmp/adbyby
  94. fi
  95. if [ -s "/tmp/adbyby" ] ;then
  96. chmod 777 /tmp/adbyby
  97. /tmp/sh_downloads_adblock.sh
  98. /tmp/sh_white_list.sh
  99. /tmp/adbyby > /tmp/adbyby.log&
  100. sleep 3
  101. /tmp/adbyby > /tmp/adbyby.log&
  102. #/tmp/adbyby --no-daemon &
  103. sleep 3
  104. killall -15 adbyby
  105. killall -9 adbyby
  106. sleep 3
  107. /tmp/adbyby >/dev/null 2>&1 &
  108. if [ "\$adblocks" != "0" ] ; then
  109. logger -t "adbyby" "加载adblock规则,等候60秒"
  110. sleep 60
  111. else
  112. sleep 20
  113. fi
  114. fi
  115. if [ -s "/tmp/adbyby.log" ] ;then
  116. logger -t "adbyby" "启动完成"
  117. rm -f /tmp/adbyby.log
  118. rm -f /tmp/7620n.tar.gz
  119. rm -f /tmp/cron_adb.lock
  120. logger -t "adbyby" "lazy更新:\`sed -n '1p' /tmp/data/lazy.txt\`"
  121. logger -t "adbyby" "video更新:\`sed -n '1p' /tmp/data/video.txt\`"
  122. /tmp/sh_mon.sh&
  123. if [ "\$CPUAverages" != "0" ] ; then
  124. /tmp/sh_CPUAverage.sh&
  125. fi
  126. fi
  127. fi
  128. EOF
  129. chmod 777 "/tmp/sh_func_load_adbyby.sh"
  130. sleep 5
  131. rm -f /tmp/cron_adb.lock
  132. /tmp/sh_func_load_adbyby.sh
  133. if [ ! -s "/tmp/adbyby" ] ;then
  134. rm -f /tmp/7620n.tar.gz
  135. logger -t "adbyby" "功能关闭"
  136. fi
  137. upanPath=`ls -l /media/ | awk '/^d/ {print $NF}' | sed -n '1p'`
  138. optw_enable=`nvram get optw_enable`
  139. if [ "$syncys" != "0" ] || [ "$FastDicks" = "1" ] || [ "$ssproxys" != "0" ] || [ "$phddns" != "0" ] && [ "$installs" = "1" ] ; then
  140. logger -t "opt" "optU盘安装,模式:$installs"
  141. if [ "$optw_enable" = "2" ] ; then
  142. SSPath="/media/$upanPath/opt"
  143. if [ ! -x "$SSPath" ]; then
  144. mkdir -p /media/$upanPath/opt
  145. mount -o bind /media/$upanPath/opt /opt
  146. fi
  147. ln -sf /media/$upanPath /tmp/AiDisk_00
  148. upopt
  149. /tmp/sh_installs.sh $ssfile
  150. else
  151. logger -t "opt" "U盘安装失败,需要开启Entware运行环境,请插入U盘,按要求设置"
  152. syncys=0
  153. xunleis=0
  154. logger -t "opt" "U盘安装失败,自动转换内存安装"
  155. "$installs" = "1" ] && installs=2
  156. "$FastDicks" = "1" ] && FastDicks=2
  157. fi
  158. fi
  159. if [ "$ssproxys" != "0" ] || [ "$phddns" != "0" ] && [ "$installs" = "2" ] ; then
  160. logger -t "opt" "opt内存安装,模式:$installs,没有百度云、迅雷"
  161. if [ "$optw_enable" = "0" ] ; then
  162. mkdir -p /tmp/AiDisk_00/opt
  163. mount -o bind /tmp/AiDisk_00/opt /opt
  164. upopt
  165. /tmp/sh_installs.sh $ssfile2
  166. rm -f /opt/opt.tgz
  167. rm -fR /opt/shadowsocks
  168. syncys=0
  169. xunleis=0
  170. URLDNSP="http://code.taobao.org/svn/padavanrt-n56uopt/Pcap_DNSProxy-0.4.4.5-statically_mipsel/opt/bin/Pcap_DNSProxy"
  171. "$DNSProxy" != "0" ] && /tmp/sh_download.sh "/opt/bin/Pcap_DNSProxy" $URLDNSP
  172. else
  173. logger -t "SS" "内存安装失败,需要关闭Entware运行环境,请按要求设置"
  174. syncys=0
  175. xunleis=0
  176. phddns=0
  177. ssproxys=0
  178. installs=0
  179. fi
  180. fi
  181. shadowsockssh="/tmp/AiDisk_00/shadowsocks/shadowsocks"
  182. err="请更新opt文件夹、检查U盘文件和Entware设置"
  183. if [ ! -s "/tmp/AiDisk_00/shadowsocks/shadowsocks" ] ;then
  184. ssproxys=0
  185. logger -t "SS" "opt缺少shadowsocks文件,$err"
  186. fi
  187. if [ "$ssproxys" != "0" ] ; then
  188. logger -t "SS" "生成服务器配置文件"
  189. logger -t "SS" "server_ip:$server_ip"
  190. if [ ! -z /opt/bin/resolveip ]; then
  191. server_ip=`/opt/bin/resolveip $server_ip | grep -v : | sed -n '1p'`
  192. logger -t "SS" "resolveip:$server_ip"
  193. fi
  194. cat > "/opt/etc/shadowsocks.json" <<-EOF
  195. {
  196. "server":"$server_ip",
  197. "server_port":$server_port,
  198. "local_address":"0.0.0.0",
  199. "local_port":$local_port,
  200. "password":"$server_password",
  201. "timeout":60,
  202. "method":"$server_method"
  203. }
  204. EOF
  205. echo $udprelay > /tmp/udprelay.lock
  206. echo $DNSProxy > /tmp/DNSProxy.lock
  207. if [ "$ssproxys" = "1" ] ; then
  208. if [ "$gfwlists" = "1" ] ; then
  209. logger -t "SS" "$ssproxys【1;方案一】"
  210. echo "1" > /tmp/SSProxy.lock
  211. $shadowsockssh set_up
  212. else
  213. logger -t "SS" "$ssproxys【2;方案二】"
  214. echo "2" > /tmp/SSProxy.lock
  215. $shadowsockssh set_up
  216. fi
  217. fi
  218. if [ "$ssproxys" = "2" ] ; then
  219. logger -t "SS" "$ssproxys【全部走代理】"
  220. echo "3" > /tmp/SSProxy.lock
  221. $shadowsockssh set_up
  222. fi
  223. /tmp/sh_ssmon.sh $gfwlists&
  224. fi
  225. if [ "$ssproxys" = "0" ] ; then
  226. logger -t "SS" "关闭,自动删除dnsmasqs配置"
  227. echo "0" > /tmp/SSProxy.lock
  228. /tmp/sh_dnsmasqs.sh 0 && restart_dhcpd && rm -f /var/log/shadowsocks.lock
  229. $shadowsockssh stop && sleep 2
  230. fi
  231. if [ "$syncys" != "0" ] ; then
  232. if [ ! -s "/opt/etc/syncy.py" ] ;then
  233. logger -t "syncy" "opt缺少syncy.py文件,$err"
  234. else
  235. logger -t "syncy" "启动syncy服务"
  236. sed -i 's/\r//g' /opt/etc/syncy
  237. python /opt/etc/syncy.py &
  238. sleep 25
  239. /tmp/sh_syncyquota.sh&
  240. fi
  241. fi
  242. if [ "$xunleis" != "0" ] ; then
  243. echo "1" > /tmp/xunleis.lock
  244. /tmp/sh_xun_lei.sh $xunleis /media/$upanPath/xunlei &
  245. fi
  246. if [ "$FastDicks" != "0" ] ; then
  247. echo "1" > /tmp/FastDicks.lock
  248. /tmp/sh_FastDick.sh $FastDicks $uid $pwd &
  249. fi
  250. if [ "$phddns" != "0" ] ; then
  251. if [ ! -s "/opt/phddns2/oraynewph.sh" ] ;then
  252. logger -t "花生壳内网版" "opt缺少oraynewph.sh文件,$err"
  253. else
  254. if [ "$installs" = "2" ] ; then
  255. ln -sf "/etc/storage/PhMain.ini" "/etc/PhMain.ini"
  256. ln -sf "/etc/storage/init.status" "/etc/init.status"
  257. wphddns2="http://code.taobao.org/svn/padavanrt-n56uopt/phddns2/bin"
  258. /tmp/sh_download.sh "/opt/phddns2/bin/oraynewph" "$wphddns2/oraynewph"
  259. /tmp/sh_download.sh "/opt/phddns2/bin/oraysl" "$wphddns2/oraysl"
  260. logger -t "花生壳内网版" "现在是免U盘运行,请绑定账号后【提交】内部存储保存配置"
  261. else
  262. ln -sf "/etc/storage/PhMain.ini" "/etc/PhMain.ini"
  263. ln -sf "/etc/storage/init.status" "/etc/init.status"
  264. fi
  265. /opt/phddns2/oraynewph.sh start &
  266. sleep 28
  267. /opt/phddns2/oraynewph.sh status &
  268. /tmp/sh_orayd.sh &
  269. sleep 5
  270. fi
  271. fi
  272. logger -t "自定义脚本1" "脚本完成"
  273. /etc/storage/crontabs_script.sh &
  274. upopt
  275. rm -f /tmp/script1.lock

 

自定义脚本2

  1. #!/bin/sh
  2. #copyright by hiboy
  3. [ -f /tmp/script2.lock ] && exit 0
  4. touch /tmp/script2.lock
  5. cat > "/tmp/sh_download.sh" <<-\EOF
  6. #!/bin/sh
  7. output=$1
  8. url1=$2
  9. url2=$3
  10. [ -z "$url2" ] && url2=$url1
  11. rm -f $output
  12. wget -O $output $url1 --continue
  13. if [ ! -s "$output" ] ;then
  14. logger -t "sh_download" "下载失败:【$output】 URL:【$url1】"
  15. logger -t "sh_download" "重新下载:【$output】 URL:【$url2】"
  16. rm -f $output
  17. sleep 16
  18. wget -O $output $url2 --continue
  19. fi
  20. if [ ! -s "$output" ] ;then
  21. logger -t "sh_download" "下载失败:【$output】 URL:【$url2】"
  22. exit 1
  23. else
  24. chmod 777 $output
  25. fi
  26. EOF
  27. chmod 777 "/tmp/sh_download.sh"
  28. cat > "/tmp/sh_untar.sh" <<-\EOF
  29. #!/bin/sh
  30. flie=$1
  31. output=$2
  32. outputflie=$3
  33. tar -xzvf $flie -C $output
  34. if [ ! -s "$outputflie" ] ;then
  35. logger -t "sh_untar" "解压不正常:$1"
  36. exit 1
  37. fi
  38. EOF
  39. chmod 777 "/tmp/sh_untar.sh"
  40. cat > "/tmp/sh_ddns.sh" <<-\EOF
  41. #!/bin/sh
  42. flie=$1
  43. url=$2
  44. logger -t "ddns" "更新IP地址-$flie"
  45. while [ "1" ];
  46. do
  47. wget -O $flie $url --continue
  48. sleep 666
  49. continue
  50. done
  51. EOF
  52. chmod 777 "/tmp/sh_ddns.sh"
  53. cat > "/tmp/sh_adb8118.sh" <<-\EOF
  54. #!/bin/sh
  55. adb=$1
  56. if [ "$adb" = "D" ] ; then
  57. iptables -t nat -D PREROUTING -p tcp --dport 80 -j ad_byby
  58. logger -t "iptables" "删除8118转发规则"
  59. #echo '127.0.0.1 update.adbyby.com' >> /etc/storage/dnsmasq/hosts
  60. iptables -t nat -D ad_byby -p tcp --dport 80 -j REDIRECT --to-ports 8118
  61. iptables -t nat -F ad_byby &> /dev/null
  62. iptables -t nat -X ad_byby &> /dev/null
  63. ipset destroy ad_byby &> /dev/null
  64. iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8118
  65. else
  66. logger -t "iptables" "添加8118转发规则"
  67. sed -e '/.*update.adbyby.com/d' -i /etc/storage/dnsmasq/hosts
  68. iptables -t nat -N ad_byby
  69. iptables -t nat -A ad_byby -d `nvram get lan_ipaddr` -j RETURN
  70. iptables -t nat -A ad_byby -p tcp --dport 80 -j REDIRECT --to-ports 8118
  71. iptables -t nat -A PREROUTING -p tcp --dport 80 -j ad_byby
  72. fi
  73. /etc/storage/ez_buttons_script.sh 3 &
  74. restart_dhcpd
  75. EOF
  76. chmod 777 "/tmp/sh_adb8118.sh"
  77. cat > "/tmp/sh_mon.sh" <<-\EOF
  78. #!/bin/sh
  79. logger -t "adbyby" "adbyby 进程守护启动"
  80. rm -f /tmp/cron_adb.lock
  81. reb=1
  82. while [ "1" ];
  83. do
  84. if [ -s "/tmp/adbyby" ] ;then
  85. if [ ! -f /tmp/cron_adb.lock ]; then
  86. if [ "$reb" -gt 5 ] && [ ! -f /tmp/reb_0.lock ] ; then
  87. LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
  88. echo '['$LOGTIME'] 网络连接中断['$reb'],reboot.' >> /opt/log.txt 2>&1
  89. sleep 5
  90. reboot
  91. fi
  92. #wget --spider --quiet --timeout=6 www.baidu.com
  93. #if [ "$?" == "0" ]; then
  94. baidu='http://passport.baidu.com/passApi/img/small_blank.gif'
  95. /tmp/sh_download.sh /tmp/small_blank.gif $baidu
  96. if [ ! -s /tmp/small_blank.gif ]; then
  97. restart_dhcpd
  98. sleep 30
  99. /tmp/sh_download.sh /tmp/small_blank.gif $baidu
  100. fi
  101. if [ -s /tmp/small_blank.gif ]; then
  102. reb=1
  103. PIDS=$(ps | grep "/tmp/adbyby" | grep -v "grep" | wc -l)
  104. if [ "$PIDS" = 0 ]; then
  105. logger -t "adbyby" "网络连接正常"
  106. logger -t "adbyby" "找不到进程,重启adbyby"
  107. /tmp/sh_adb8118.sh D
  108. killall -15 adbyby
  109. killall -9 adbyby
  110. sleep 3
  111. /tmp/adbyby >/dev/null 2>&1 &
  112. sleep 20
  113. reb=`expr $reb + 1`
  114. continue
  115. fi
  116. if [ "$PIDS" -gt 2 ]; then
  117. logger -t "adbyby" "进程重复,重启adbyby"
  118. /tmp/sh_adb8118.sh D
  119. killall -15 adbyby
  120. killall -9 adbyby
  121. sleep 3
  122. /tmp/adbyby >/dev/null 2>&1 &
  123. sleep 20
  124. continue
  125. fi
  126. port=$(iptables -t nat -L | grep 'ports 8118' | wc -l)
  127. if [ "$port" = 0 ]; then
  128. logger -t "adbyby" "找不到8118转发规则,重新添加"
  129. /tmp/sh_adb8118.sh A
  130. fi
  131. port=$(iptables -t nat -L | grep 'ports 8118' | wc -l)
  132. if [ "$port" -gt 1 ]; then
  133. logger -t "adbyby" "有多个8118转发规则,删除多余"
  134. while [[ "$port" != 1 ]]
  135. do
  136. /tmp/sh_adb8118.sh D
  137. port=$(iptables -t nat -L | grep 'ports 8118' | wc -l)
  138. done
  139. fi
  140. sleep 66
  141. else
  142. logger -t "adbyby" "网络连接中断$reb,关闭adbyby"
  143. port=$(iptables -t nat -L | grep 'ports 8118' | wc -l)
  144. while [[ "$port" != 0 ]]
  145. do
  146. /tmp/sh_adb8118.sh D
  147. port=$(iptables -t nat -L | grep 'ports 8118' | wc -l)
  148. done
  149. PIDS=$(ps | grep "adbyby" | grep -v "grep" | wc -l)
  150. if [ "$PIDS" != 0 ]; then
  151. killall -15 adbyby
  152. killall -9 adbyby
  153. fi
  154. reb=`expr $reb + 1`
  155. fi
  156. fi
  157. fi
  158. /etc/storage/ez_buttons_script.sh 3 &
  159. sleep 65
  160. continue
  161. done
  162. EOF
  163. chmod 777 "/tmp/sh_mon.sh"
  164. cat > "/tmp/sh_CPUAverage.sh" <<-\EOF
  165. #!/bin/sh
  166. logger -t "adbyby" "路由器负载监控启动"
  167. while [ "1" ];
  168. do
  169. if [ ! -f /tmp/cron_adb.lock ]; then
  170. CPULoad=`uptime |sed -e 's/\ *//g' -e 's/.*://g' -e 's/,.*//g' -e 's/\..*//g'`
  171. if [ $((CPULoad)) -ge "2" ];then
  172. logger -t "adbyby" "CPU负载拥堵,关闭adbyby"
  173. /tmp/sh_adb8118.sh D
  174. killall -15 adbyby
  175. killall -9 adbyby
  176. touch /tmp/cron_adb.lock
  177. while [[ "$CPULoad" -ge "2" ]]
  178. do
  179. sleep 64
  180. CPULoad=`uptime |sed -e 's/\ *//g' -e 's/.*://g' -e 's/,.*//g' -e 's/\..*//g'`
  181. done
  182. logger -t "adbyby" "CPU负载正常"
  183. rm -f /tmp/cron_adb.lock
  184. fi
  185. fi
  186. sleep 63
  187. done
  188. EOF
  189. chmod 777 "/tmp/sh_CPUAverage.sh"
  190. cat > "/tmp/sh_installs.sh" <<-\EOF
  191. #!/bin/sh
  192. ssfile=$1
  193. [ ! -f "/tmp/AiDisk_00/shadowsocks/shadowsocks" ] && cp -fR /opt/shadowsocks /tmp/AiDisk_00 && chmod 777 /tmp/AiDisk_00/shadowsocks -R
  194. if [ ! -f "/tmp/AiDisk_00/shadowsocks/shadowsocks" ] || [ ! -f "/opt/optv.txt" ] ;then
  195. logger -t "SS" "自动安装(覆盖opt文件夹)"
  196. #rm -f /opt/* -R
  197. logger -t "SS" "opt第一次下载"
  198. wget -O /opt/opt.tgz $ssfile --continue
  199. tar -xzvf /opt/opt.tgz -C /opt
  200. if [ ! -f "/opt/shadowsocks/shadowsocks" ] ;then
  201. logger -t "SS" "/opt/opt.tgz下载SS失败"
  202. rm -f /opt/opt.tgz
  203. logger -t "SS" "opt第二次下载"
  204. wget -O /opt/opt.tgz $ssfile --continue
  205. tar -xzvf /opt/opt.tgz -C /opt
  206. fi
  207. if [ -s "/opt/shadowsocks/shadowsocks" ] ;then
  208. logger -t "SS" "opt解压完成"
  209. chmod 777 /opt -R
  210. cp -fR /opt/shadowsocks /tmp/AiDisk_00
  211. chmod 777 /tmp/AiDisk_00/shadowsocks -R
  212. fi
  213. fi
  214. EOF
  215. chmod 777 "/tmp/sh_installs.sh"
  216. cat > "/tmp/sh_xun_lei.sh" <<-\EOF
  217. #!/bin/sh
  218. export PATH=/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin:/usr/sbin:/usr/bin:/sbin:/bin
  219. export LD_LIBRARY_PATH=/opt/lib:/lib
  220. xunleis=$1
  221. xunleiPath=$2
  222. xunleifile=$3
  223. if [ "$xunleis" != "0" ] ; then
  224. if [ ! -x $xunleiPath ]; then
  225. mkdir -p $xunleiPath
  226. fi
  227. if [ ! -s $xunleiPath"/portal" ] ;then
  228. logger -t "迅雷下载" "Xware1.0.31_mipsel_32_uclibc"
  229. Xware1="http://code.taobao.org/svn/padavanrt-n56uopt/Xware1.0.31_mipsel_32_uclibc.tgz"
  230. /tmp/sh_download.sh "$xunleiPath/Xware1.tgz" $Xware1
  231. /tmp/sh_untar.sh $xunleiPath"/Xware1.tgz" $xunleiPath "$xunleiPath/portal"
  232. fi
  233. if [ ! -s "$xunleiPath/portal" ] ;then
  234. logger -t "迅雷下载" "xunlei缺少portal文件"
  235. else
  236. chmod 777 "$xunleiPath/portal"
  237. "$xunleiPath/portal"&
  238. sleep 44
  239. /tmp/sh_download.sh "/tmp/xunlei.info" "http://`nvram get lan_ipaddr`:9000/getsysinfo" "http://`nvram get lan_ipaddr`:9001/getsysinfo"
  240. logger -t "迅雷下载" "启动xunlei,绑定设备页面【http://yuancheng.xunlei.com】"
  241. logger -t "迅雷下载" "在浏览器中输入【http://`nvram get lan_ipaddr`:9000/getsysinfo】"
  242. logger -t "迅雷下载" "显示错误则输入【http://`nvram get lan_ipaddr`:9001/getsysinfo】"
  243. logger -t "迅雷下载" "会看到类似如下信息:"
  244. logger -t "迅雷下载" "`cat /tmp/xunlei.info`"
  245. logger -t "迅雷下载" "其中有用的几项为:"
  246. logger -t "迅雷下载" "①:0表示返回结果成功"
  247. logger -t "迅雷下载" "②:1表示检测网络正常,0表示检测网络异常"
  248. logger -t "迅雷下载" "④:1表示已绑定成功,0表示未绑定"
  249. logger -t "迅雷下载" "⑤:未绑定的情况下,为绑定的需要的激活码"
  250. logger -t "迅雷下载" "⑥:1表示磁盘挂载检测成功,0表示磁盘挂载检测失败"
  251. /tmp/sh_Thunder.sh &
  252. fi
  253. fi
  254. EOF
  255. chmod 777 "/tmp/sh_xun_lei.sh"
  256. cat >/tmp/qos_scheduler.sh <<-\EOF
  257. #!/bin/sh
  258. qosc=$1
  259. echo 0 >/tmp/qos_scheduler.lock
  260. logger -t "QOS" "终端在线检查启动"
  261. while [ "1" ];
  262. do
  263. if [ "$(cat /tmp/qoss_state)" == "0" ] ; then
  264. logger -t "QOS" "终端在线检查暂停"
  265. rm -f /tmp/qos_scheduler.lock
  266. exit
  267. fi
  268. qos_t=`cat /proc/net/arp|fgrep -c 0x2`
  269. if [ $((qos_t)) -le $qosc ]; then
  270. if [ $(ifconfig |grep -c imq0) -gt 0 ]; then
  271. logger -t "QOS" "取消限速,当在线$qos_t台,小于或等于$qosc台"
  272. ip link set imq0 down
  273. ip link set imq1 down
  274. fi
  275. else
  276. if [ $(ifconfig |grep -c imq0) -eq 0 ] ; then
  277. logger -t "QOS" "开始限速,当在线$qos_t台,大于$qosc台"
  278. ip link set imq0 up
  279. ip link set imq1 up
  280. sleep 6
  281. port=$(iptables -t mangle -L | grep 'IMQ: todev 0' | wc -l)
  282. if [ "$port" = 0 ]; then
  283. logger -t "QOS" "找不到QOS规则,重新添加"
  284. /etc/storage/post_iptables_script.sh&
  285. fi
  286. fi
  287. fi
  288. sleep 69
  289. continue
  290. done
  291. EOF
  292. chmod 777 "/tmp/qos_scheduler.sh"
  293. logger -t "自定义脚本2" "脚本完成"
  294. rm -f /tmp/script2.lock

 

自定义脚本3

  1. #!/bin/sh
  2. #copyright by hiboy
  3. [ -f /tmp/script3.lock ] && exit 0
  4. touch /tmp/script3.lock
  5. ln -sf "/etc/storage/PhMain.ini" "/etc/PhMain.ini"
  6. ln -sf "/etc/storage/init.status" "/etc/init.status"
  7. rm -f "/opt/etc/init.d/S96sh3.sh"
  8. cat > "/tmp/sh_dnsmasqs.sh" <<-\END
  9. #!/bin/sh
  10. gfwlists=$1
  11. sed -Ei '/no-resolv|server=127.0.0.1|dns-forward-max=1000|min-cache-ttl=1800|shadowsocks\/dnsmasq/d' /etc/storage/dnsmasq/dnsmasq.conf
  12. if [ "$gfwlists" = "1" ] ; then
  13. logger -t "SS" "自动写入方案一dnsmasqs配置"
  14. cat >> "/etc/storage/dnsmasq/dnsmasq.conf" <<-EOF
  15. no-resolv
  16. server=127.0.0.1#5353
  17. dns-forward-max=1000
  18. min-cache-ttl=1800
  19. EOF
  20. fi
  21. if [ "$gfwlists" = "2" ] ; then
  22. logger -t "SS" "自动写入方案二dnsmasqs配置"
  23. cat >> "/etc/storage/dnsmasq/dnsmasq.conf" <<-EOF
  24. conf-dir=/tmp/AiDisk_00/shadowsocks/dnsmasq.d
  25. dns-forward-max=1000
  26. min-cache-ttl=1800
  27. EOF
  28. fi
  29. END
  30. chmod 777 "/tmp/sh_dnsmasqs.sh"
  31. cat > "/tmp/sh_ssmon.sh" <<-\EOF
  32. #!/bin/sh
  33. gfwlists=$1
  34. logger -t "SS" "shadowsocks 进程守护启动"
  35. rebss=1
  36. rm -f /tmp/cron_ss.lock
  37. while [ "1" ];
  38. do
  39. sleep 67
  40. /etc/storage/ez_buttons_script.sh 3 &
  41. if [ ! -f /tmp/cron_ss.lock ] && [ -f "/var/log/shadowsocks.lock" ]; then
  42. if [ "$rebss" -gt 5 ] && [ ! -f /tmp/reb_0.lock ] ; then
  43. LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
  44. logger -t "SS" "['$LOGTIME'] 网络连接shadowsocks中断['$rebss'],reboot."
  45. sleep 5
  46. reboot
  47. fi
  48. pstmp='ps'
  49. PROCESS=$($pstmp | grep "ss-redir" | grep -v "grep")
  50. if [ -z "$PROCESS" ] && [ -f "/var/log/shadowsocks.lock" ]; then
  51. /opt/etc/init.d/S22shadowsocks restart
  52. logger -t "SS" "找不到shadowsocks进程$rebss,重启shadowsocks"
  53. rebss=`expr $rebss + 1`
  54. fi
  55. PROCESS=$($pstmp | grep "chinadns" | grep -v "grep")
  56. if [ -z "$PROCESS" ] && [ -f "/var/log/chinadns.lock" ]; then
  57. /opt/etc/init.d/S24chinadns restart
  58. logger -t "SS" "找不到chinadns进程$rebss,重启chinadns"
  59. rebss=`expr $rebss + 1`
  60. fi
  61. PROCESS=$($pstmp | grep "pdnsd" | grep -v "grep")
  62. if [ -z "$PROCESS" ] && [ -f "/var/log/pdnsd.lock" ]; then
  63. chmod 755 /etc/pdnsd.conf
  64. /opt/etc/init.d/S26pdnsd restart
  65. logger -t "SS" "找不到pdnsd进程$rebss,重启pdnsd"
  66. fi
  67. PROCESS=$($pstmp | grep "ss-tunnel" | grep -v "grep")
  68. if [ -z "$PROCESS" ] && [ -f "/var/log/ss-tunnel.lock" ]; then
  69. /opt/etc/init.d/S23ss-tunnel restart
  70. logger -t "SS" "找不到ss-tunnel进程$rebss,重启ss-tunnel"
  71. fi
  72. PROCESS=$($pstmp | grep "Pcap_DNSProxy" | grep -v "grep")
  73. if [ -z "$PROCESS" ] && [ -f "/var/log/pcap_dnsproxy.lock" ]; then
  74. /opt/etc/init.d/S26pdnsd stop
  75. /opt/etc/init.d/S24chinadns stop
  76. /opt/etc/init.d/S27pcap-dnsproxy restart
  77. logger -t "SS" "找不到Pcap_DNSProxy进程$rebss,重启Pcap_DNSProxy"
  78. fi
  79. #wget --spider --quiet --timeout=10 www.google.co.jp
  80. #if [ "$?" == "0" ]; then
  81. google='http://www.google.com/images/icons/product/videos-32.png'
  82. /tmp/sh_download.sh /tmp/videos-32.png $google
  83. if [ ! -s /tmp/videos-32.png ]; then
  84. restart_dhcpd
  85. sleep 30
  86. /tmp/sh_download.sh /tmp/videos-32.png $google
  87. fi
  88. if [ -s /tmp/videos-32.png ]; then
  89. rm -f /tmp/videos-32.png
  90. rebss=1
  91. #logger -t "SS" "网络连接shadowsocks正常"
  92. sleep 68
  93. else
  94. logger -t "SS" "网络连接shadowsocks中断$rebss,重启shadowsocks$gfwlists"
  95. rebss=`expr $rebss + 1`
  96. /tmp/AiDisk_00/shadowsocks/shadowsocks set_up
  97. fi
  98. fi
  99. continue
  100. done
  101. EOF
  102. chmod 777 "/tmp/sh_ssmon.sh"
  103. cat > "/tmp/sh_syncyquota.sh" <<-\EOF
  104. #!/bin/sh
  105. logger -t "syncy" "等待SyncY同步软件启动,SyncY同步软件技术博客:http://www.syncy.cn/"
  106. while [ ! -s "/tmp/syncy.quota" ]
  107. do
  108. sleep 11
  109. if [ -s "/tmp/syncy.user_code" ] ;then
  110. user_code_log=`cat /tmp/syncy.user_code`
  111. logger -t "syncy" "$user_code_log"
  112. logger -t "syncy" "打开百度授权页面https://openapi.baidu.com/device"
  113. logger -t "syncy" "输入用户码【$user_code_log】(请在100秒内输入用户码)"
  114. while [ ! -s "/tmp/syncy.user_token" ]
  115. do
  116. sleep 12
  117. if [ -s "/tmp/syncy.user_token" ] ;then
  118. user_code_log=`cat /tmp/syncy.user_token`
  119. logger -t "syncy" "$user_code_log"
  120. logger -t "syncy" "显示【Get device token success.】表示授权完成。"
  121. /tmp/sh_syncyd.sh &
  122. fi
  123. done
  124. fi
  125. done
  126. user_code_log=`cat /tmp/syncy.quota`
  127. logger -t "syncy" "$user_code_log"
  128. logger -t "syncy" "SyncY同步启动成功"
  129. logger -t "syncy" "SyncY同步软件技术博客:http://www.syncy.cn/"
  130. EOF
  131. chmod 777 "/tmp/sh_syncyquota.sh"
  132. cat > "/tmp/sh_syncyd.sh" <<-\EOF
  133. #!/bin/sh
  134. logger -t "syncy" "SyncY守护进程启动"
  135. pid_file="/var/run/syncy.pid"
  136. start_cmd="/opt/etc/syncy.py &"
  137. while true; do
  138. running=$(ps | grep "/opt/etc/syncy.py" | grep -v "grep" | wc -l)
  139. if [ $running -le 0 ]; then
  140. eval $start_cmd
  141. echo "start syncy"
  142. logger -t "syncy" "SyncY重新启动"
  143. else
  144. echo "syncy is running"
  145. fi
  146. sleep 65
  147. done
  148. EOF
  149. chmod 777 "/tmp/sh_syncyd.sh"
  150. cat > "/tmp/sh_orayd.sh" <<-\EOF
  151. #!/bin/sh
  152. logger -t "花生壳内网版" "守护进程启动"
  153. online=""
  154. onlinetest()
  155. {
  156. orayslstatus=`head -n 3 /tmp/oraysl.status`
  157. online=$(echo $orayslstatus | grep "ONLINE" | wc -l)
  158. }
  159. onlinetest
  160. while [ $online -le 0 ]; do
  161. sleep 68
  162. onlinetest
  163. logger -t "花生壳内网版" "$online"
  164. done
  165. logger -t "花生壳内网版" "ONLINE"
  166. while true; do
  167. sleep 68
  168. onlinetest
  169. running=$(ps | grep "/opt/usr/oray-app/bin/oraynewph" | grep -v "grep" | wc -l)
  170. running2=$(ps | grep "/opt/usr/oray-app/bin/oraysl" | grep -v "grep" | wc -l)
  171. if [ $running -le 0 ] || [ $running2 -le 0 ] || [ $online -le 0 ]; then
  172. /opt/phddns2/oraynewph.sh reset &
  173. logger -t "花生壳内网版" "重新启动"
  174. else
  175. echo "oray is running"
  176. fi
  177. done
  178. EOF
  179. chmod 777 "/tmp/sh_orayd.sh"
  180. cat > "/tmp/sh_Thunder.sh" <<-\EOF
  181. #!/bin/sh
  182. upanPath=`ls -l /media/ | awk '/^d/ {print $NF}' | sed -n '1p'`
  183. logger -t "迅雷下载" "守护进程启动$upanPath"
  184. while true; do
  185. running=$(ps | grep "/xunlei/lib/" | grep -v "grep" | wc -l)
  186. if [ $running -le 2 ] ; then
  187. /media/$upanPath/xunlei/portal &
  188. logger -t "迅雷下载" "重新启动"
  189. else
  190. echo "xunlei is running"
  191. fi
  192. sleep 71
  193. done
  194. EOF
  195. chmod 777 "/tmp/sh_Thunder.sh"
  196. cat > "/tmp/sh_FastDick.sh" <<-\EOF
  197. #!/bin/sh
  198. #copyright by hiboy
  199. export PATH=/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin:/usr/sbin:/usr/bin:/sbin:/bin
  200. export LD_LIBRARY_PATH=/opt/lib:/lib
  201. FastDicks=$1
  202. uid=$2
  203. pwd=$3
  204. if [ "$FastDicks" != "0" ] ; then
  205. logger -t "迅雷快鸟" "迅雷快鸟(diǎo)路由器版:https://github.com/fffonion/Xunlei-FastDick"
  206. if [ "$FastDicks" = "2" ] ; then
  207. logger -t "迅雷快鸟" "稍等几分钟,ssh到路由,控制台输入【ps】命令查看[/opt/FastDick/swjsq_wget.sh]进程是否存在,是否正常启动,提速是否成功。"
  208. logger -t "迅雷快鸟" "免U盘启动"
  209. chmod 777 "/etc/storage/FastDick_script.sh"
  210. /etc/storage/FastDick_script.sh &
  211. else
  212. rm -f "/opt/FastDick/" -R
  213. mkdir -p "/opt/FastDick"
  214. swjsqfile="https://raw.githubusercontent.com/fffonion/Xunlei-FastDick/master/swjsq.py"
  215. /tmp/sh_download.sh "/opt/FastDick/swjsq.py" $swjsqfile
  216. chmod 777 "/opt/FastDick/swjsq.py"
  217. logger -t "迅雷快鸟" "程序下载完成,正在启动 python /opt/FastDick/swjsq.py"
  218. echo "$uid,$pwd" >/opt/FastDick/swjsq.account.txt
  219. chmod 777 /opt/FastDick -R
  220. cd /opt/FastDick
  221. python /opt/FastDick/swjsq.py 2>&1 > /opt/FastDick/swjsq.log &
  222. chmod 777 "/opt/FastDick" -R
  223. sleep 30
  224. chmod 777 "/opt/FastDick" -R
  225. if [ -f /opt/FastDick/swjsq_wget.sh ]; then
  226. logger -t "迅雷快鸟" "自动备份swjsq文件到路由,【提交内部存储】后下次重启可以免U盘启动了"
  227. cat > "/etc/storage/FastDick_script.sh" <<-\EEF
  228. #!/bin/sh
  229. # 迅雷快鸟【2免U盘启动】功能需到【自定义脚本0】配置【FastDicks=2】,并在此输入swjsq_wget.sh文件内容
  230. #【2免U盘启动】需要填写在下方的【迅雷快鸟脚本】,生成脚本两种方法:
  231. # ①插入U盘,配置自定义脚本【1插U盘启动】启动快鸟一次即可自动生成
  232. # ②打开https://github.com/fffonion/Xunlei-FastDick,按照网页的说明在PC上运行脚本,登陆成功后会生成swjsq_wget.sh,把swjsq_wget.sh的内容粘贴此处即可
  233. # 生成后需要到【系统管理】 - 【恢复/导出/上传设置】 - 【路由器内部存储 (/etc/storage)】【提交】保存脚本
  234. EEF
  235. cat /opt/FastDick/swjsq_wget.sh >> /etc/storage/FastDick_script.sh
  236. chmod 777 "/etc/storage/FastDick_script.sh"
  237. fi
  238. logger -t "迅雷快鸟" "启动完成`cat /opt/FastDick/swjsq.log`"
  239. fi
  240. else
  241. rm -f "/opt/FastDick/" -R
  242. fi
  243. EOF
  244. chmod 777 "/tmp/sh_FastDick.sh"
  245. logger -t "自定义脚本3" "脚本完成"
  246. rm -f /tmp/script3.lock

 

迅雷快鸟脚本:(把swjsq_wget.sh的内容粘贴此处)

  1. #!/bin/sh
  2. # 迅雷快鸟【2免U盘启动】功能需到【自定义脚本0】配置【FastDicks=2】,并在此输入swjsq_wget.sh文件内容
  3. #【2免U盘启动】需要填写在下方的【迅雷快鸟脚本】,生成脚本两种方法:
  4. # ①插入U盘,配置自定义脚本【1插U盘启动】启动快鸟一次即可自动生成
  5. # ②打开https://github.com/fffonion/Xunlei-FastDick,按照网页的说明在PC上运行脚本,登陆成功后会生成swjsq_wget.sh,把swjsq_wget.sh的内容粘贴此处即可
  6. # 生成后需要到【系统管理】 - 【恢复/导出/上传设置】 - 【路由器内部存储 (/etc/storage)】【提交】保存脚本

 

adbyby 自定义过滤规则

  1. !  ------------------------------ ADByby 自定义过滤语法简--------------------------------
  2. !  --------------  规则基于abp规则,并进行了字符替换部分的扩展-----------------------------
  3. !  ABP规则请参考 https://adblockplus.org/zh_CN/filters ,下面为大致摘要
  4. !  "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述。
  5. !  "*" 为字符通配符,能够匹配0长度或任意长度的字符串,该通配符不能与正则语法混用。
  6. !  "^" 为分隔符,可以是除了字母、数字或者 _ - . % 之外的任何字符。
  7. !  "|" 为管线符号,来表示地址的最前端或最末端
  8. !  "||" 为子域通配符,方便匹配主域名下的所有子域。
  9. !  "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。
  10. !  "##" 为元素选择器标识符,后面跟需要隐藏元素的CSS样式例如 #ad_id  .ad_class
  11. !!  元素隐藏暂不支持全局规则和排除规则
  12. !! 字符替换扩展
  13. !  文本替换选择器标识符,后面跟需要替换的文本数据,格式:$s@模式字符串@替换后的文本@
  14. !  支持通配符*和?

 

自定义Crontab定时任务配置

  1. #!/bin/sh
  2. #copyright by hiboy
  3. [ -f /tmp/crontabs.lock ] && exit 0
  4. touch /tmp/crontabs.lock
  5. http_username=`nvram get http_username`
  6. upanPath=`ls -l /media/ | awk '/^d/ {print $NF}' | sed -n '1p'`
  7. cat > "/etc/storage/cron/crontabs/$http_username" <<-EOF
  8. # 基本格式 : 
  9. # *  *  *  *  *  command 
  10. # 分 时 日 月 周 命令 
  11. # 在以上各个字段中,还可以使用以下特殊字符:
  12. # 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
  13. # 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
  14. # 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
  15. # 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
  16. # 定时运行脚本规则 (删除前面的#即可启动命令)
  17. # 每5小时重启adbyby
  18. 0 */5 * * * /tmp/sh_func_load_adbyby.sh &
  19. # 每天的一点25分更新中国路由表 
  20. 25 1 * * * /tmp/AiDisk_00/shadowsocks/shadowsocks update_chnroutes &
  21. # 每天的一点20分更新gfw表 
  22. 20 1 * * * /tmp/AiDisk_00/shadowsocks/shadowsocks update_gfwlist &
  23. # 每天的三点半重启
  24. #30 3 * * * reboot &
  25. # 每星期一的三点半重启
  26. #30 3 * * 1 reboot &
  27. # 凌晨2点定时关网:
  28. #0 2 * * * stop_wan
  29. # 早上8点定时开网(重启wan口):
  30. #0 8 * * * restart_wan
  31. # 每天的一点【切换WAN模式】和【重启wan口】
  32. #0 1 * * * /tmp/sh_wan_wips.sh wan &
  33. # 每天的十点切换wifi中继模式
  34. #0 10 * * * /tmp/sh_wan_wips.sh wips &
  35. # 每6小时重启迅雷快鸟
  36. 15 */6 * * * /tmp/sh_reFastDick.sh &
  37. # 每3小时重启迅雷下载
  38. 5 */3 * * * killall EmbedThunderManager &
  39. # 每1小时重启花生壳内网版
  40. 10 */1 * * * killall oraynewph && killall oraysl &
  41. EOF
  42. chmod 777 "/etc/storage/cron/crontabs/$http_username"
  43. cat > "/tmp/sh_wan_wips.sh" <<-\EOF
  44. #!/bin/sh
  45. logger -t "WAN、WIFI中继开关" "切换模式:$1"
  46. restartwan()
  47. {
  48. logger -t "WAN、WIFI中继开关" "重新链接wan口"
  49. restart_wan
  50. sleep 10
  51. logger -t "WAN、WIFI中继开关" "重新启动2.4GWIFI"
  52. radio2_restart
  53. }
  54. case "$1" in
  55. wan)
  56. #无线AP工作模式:"0"=【AP(桥接被禁用)】"1"=【WDS桥接(AP被禁用)】"2"=【WDS中继(网桥 + AP)】"3"=【AP-Client(AP被禁用)】"4"=【AP-Client + AP】
  57. nvram set rt_mode_x=0
  58. nvram commit
  59. restartwan
  60.   ;;
  61. wips)
  62. #无线AP工作模式:"0"=【AP(桥接被禁用)】"1"=【WDS桥接(AP被禁用)】"2"=【WDS中继(网桥 + AP)】"3"=【AP-Client(AP被禁用)】"4"=【AP-Client + AP】
  63. nvram set rt_mode_x=4
  64. nvram commit
  65. restartwan
  66.   ;;
  67. esac
  68. EOF
  69. chmod 777 "/tmp/sh_wan_wips.sh"
  70. cat > "/tmp/sh_reFastDick.sh" <<-\EOF
  71. #!/bin/sh
  72. if [ -f "/tmp/FastDicks.lock" ]; then
  73. logger -t "迅雷快鸟" "重新启动中……"
  74. killall FastDick_script.sh
  75. killall swjsq.py
  76. killall python /opt/FastDick/swjsq.py
  77. killall /opt/FastDick/swjsq.py
  78. logger -t "迅雷快鸟" "已经关闭,十五分钟后启动"
  79. sleep 900
  80. logger -t "迅雷快鸟" "启动/etc/storage/FastDick_script.sh"
  81. /etc/storage/FastDick_script.sh &
  82. fi
  83. EOF
  84. chmod 777 "/tmp/sh_reFastDick.sh"
  85. /etc/storage/ez_buttons_script.sh 3 &
  86. killall crond
  87. crond
  88. if [ ! -f /tmp/cron_adb.lock ] && [ -s "/tmp/adbyby" ]; then
  89. PIDS=$(ps | grep "/tmp/adbyby" | grep -v "grep" | wc -l)
  90. if [ "$PIDS" != 0 ]; then
  91. port=$(iptables -t nat -L | grep 'ports 8118' | wc -l)
  92. if [ "$port" = 0 ]; then
  93. logger -t "adbyby" "找不到8118转发规则,重新添加"
  94. /tmp/sh_adb8118.sh A
  95. fi
  96. fi
  97. fi
  98. rm -f /tmp/crontabs.lock

 

 

版权声明:
作者:hopol
链接:https://www.hopolcn.com/2015/12/369/
来源:HopoL's Blog
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>