原文:http://www.dwhd.org/20150519_160959.html
在CC15上安装成功
1更换openwrt的源加速地址
1
|
sed -i 's/downloads.openwrt.org/openwrt.legion.pt/' /etc/opkg .conf |
2安装bash shell
1
|
opkg update && opkg install bash |
3将root用户的shell换成bash
1
|
sed -ri 's|^(root:.*:)/bin/.*|\1/bin/bash|' /etc/passwd |
4下载DDNS脚本
1
|
wget http: //www .dwhd.org /script/dnspodDDNS .sh -O /etc/dnspodddns .sh && chmod +x /etc/dnspodddns .sh |
5执行下面的命令 修改几个必要的参数
1
2
|
vi /etc/dnspodddns .sh [ -z "$(grep 'dnspodddns.sh' /var/spool/cron/crontabs/root )" ] && echo "*/1 * * * * /etc/dnspodddns.sh &>/dev/null" >> /var/spool/cron/crontabs/root |
6然后退出ssh 重新登录或者重启下路由
1
|
reboot |
下面是脚本源码
01
02
03
04
05
06
07
08
09
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#!/bin/bash ######################################################################### # File Name: dnspodDDNS.sh # Author: LookBack # Email: 393411264@qq.com # Created Time: 2015年03月28日 星期六 23时19分00秒 ######################################################################### # # 利用DNSPOD官方提供的API,自动更新域名解析记录, # 在Netgear 4300 openwrt和CentOS 6系统上测试完美执行, # 在其他硬件的openwrt上应该也是可以执行的, # 非openwrt系统的不保证脚本的兼容性。 # 如有任何BUG 请联系我 393411264@qq.com # ######################################################################### #=======================下方是需要修改的参数信息============================================= #DNSPOD 帐号 DNSPODID= "393411264@qq.com" #DNSPOD 密码 DNSPODPW= "www.05hd.com" #DNSPOD 主域名 DNSPODPD= "05h.com" #DNSPOD 二级域名,可以是多个,如下设置DNSPODSDNM[0-n]。有几个就写几个,把多余的删除 DNSPODSDNM[0]= "openwrt141" DNSPODSDNM[1]= "openwrt" DNSPODSDNM[2]= "netgear111" #=========================下方内容如果不懂请勿修改============================================ CURL=$( which curl) GetID() { $CURL -X POST https: //dnsapi .cn /Domain .List -ks -d "login_email=$1&login_password=$2&format=json" | \ awk -F ',' '{for(i=1;i<=NF;i++) if($i~/"id":[0-9]+/ || $i~/"name":".*"/) {print $i}}' | \ awk '{if (NR%2==0){print $0} else {printf"%s ",$0}}' | sed 's/"domains":\[//' | \ awk -F ':| |"' '{print $9,$4}' > /tmp/dnspodDomain while read line; do if [ "$(awk '{print$1}' <<< $line)A" = "${DNSPODPD}A" ]; then DNSPODPDID=$( awk '{print$2}' <<< $line) break fi done < /tmp/dnspodDomain $CURL -X POST https: //dnsapi .cn /Record .List -ks -d "login_email=$1&login_password=$2&format=json&domain_id=$DNSPODPDID" | \ sed 's/.*},"records":\[//' | awk -F ',' '{for(i=1;i<=NF;i++) if($i~/"id":"[0-9]+"/ || $i~/"name":".*"/) {print $i}}' | \ awk '{if (NR%2==0){print $0} else {printf"%s ",$0}}' | awk -F '"' '{print $8,$4}' > /tmp/dnspodRecord while read line; do for i in ` seq 1 ${ #DNSPODSDNM[@]}`; do i=$[$i-1] [ "$(awk '{print$1}' <<< $line)A" = "${DNSPODSDNM[$i]}A" ] && DNSPODSDID[$i]=$( awk '{print$2}' <<< $line) && break done done < /tmp/dnspodRecord } StartRun() { WanIP=$($CURL -s ip.cn | grep -Eo '([0-9]{1,3}[\.]){3}[0-9]{1,3}' ) DNSPODIP=$($CURL -X POST https: //dnsapi .cn /Record .Info -ks -d \ "login_email=$1&login_password=$2&format=json&domain_id=$3&record_id=${DNSPODSDID[0]}" | \ grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' ) #awk -F':|,|"' '{for(i=1;i<=NF;i++)if($i~/^([0-9]{1,3}\.){3}[0-9]{1,3}$/){print$i;break}}') [ -z $WanIP ] && exit 1 [ -z $DNSPODIP ] && exit 1 :> /tmp/dnspodDomain && :> /tmp/dnspodRecord } UploadIP() { [ "${3}A" != "${4}A" ] if [ "A$?" = "A0" ]; then for i in ` seq 1 ${ #DNSPODSDNM[@]}`; do i=$[$i-1] $CURL -X POST https: //dnsapi .cn /Record .Modify -ks -d \ "login_email=$1&login_password=$2& format =json&domain_id=$5\ &record_id= ${DNSPODSDID[$i]}&sub_domain=${DNSPODSDNM[$i]}&value=$3\ &record_type=A&record_line=默认" &> /dev/null echo "$(date " +%F %H:%M:%S ") Domain ${DNSPODSDNM[$i]}.$DNSPODPD A Record Update To $3" >> /var/log/dnspod .log done fi } RUN() { GetID $1 $2 StartRun $1 $2 $DNSPODPDID UploadIP $1 $2 ${WanIP} ${DNSPODIP} $DNSPODPDID ${DNSPODSDID[*]} } RUN $DNSPODID $DNSPODPW $DNSPODPDID |
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于