动态DNS程序

动态根据宽带public ip更新dnspod登记的域名

按照 https://gist.github.com/833369 逻辑重新用Go实现了,用更少的内存开销在Raspberry Pi上跑。

替换上你的Email,密码,域名ID,记录ID等参数,就可以运行了。 会在后台一直运行,每隔30秒检查一遍IP,如果修改了就更新IP。

获得domain_id可以用:

curl curl -k https://dnsapi.cn/Domain.List -d "login_email=xxx&login_password=xxx" 

获得record_id:

curl -k https://dnsapi.cn/Record.List -d "login_email=xxx&login_password=xxx&domain_id=xxx"

将Java的Properties文件转换成环境变量

Overview

在Java程序中使用properties文件很方便,但有时候需要和脚本配合使用时,需要把properties文件内的多个变量转换成环境变量,本文提供一个转换脚本示范:

比如env.properties如下(=附近可以有空格,也可以有空行)

MYSQL_URL = jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=gbk
MYSQL_USER = root
MYSQL_PASS = 

执行下面的脚本后就相当于

export MYSQL_URL="//localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=gbk"
export MYSQL_USER="root"
export MYSQL_PASS="" 

env.sh脚本代码

#!/bin/bash

property_file=env.properties

get_prop(){
    propfile=$1
    key=$2
    grep  "^${2}=" ${1}| sed "s%${2}=\(.*\)%\1%"
}

trim() {
    trimmed=$1
    trimmed=${trimmed%% }
    trimmed=${trimmed## }
    echo "$trimmed"
}

`grep -v "^#" $property_file | sed -e '/^$/d' | while read line
do
    key=$(echo $line | awk -F "=" '{print $1}')
    trimmed_key=$(trim $key)
    trimmed_val=$(trim $(get_prop $property_file "$key")
    echo "export $trimmed_key=\"$trimmed_val\")"
done`