为树莓派配置开机自动上传IP

查询IP并上传IP

ip.sh

#!/bin/bash

#outside_ip
ip1=`curl -s ipecho.net/plain`

#inside_ip
ip2=`LC_ALL=C ifconfig|grep "inet addr:"|grep -v "127.0.0.1"| cut -d: -f2|awk '{print $1}'`
ip3=`LC_ALL=C ifconfig|grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"|grep -v "127.0.0.1"|cut -d: -f2|awk '{print $2}'|head -n 1`
if [ ! -n "$ip2" ];
then
    ip2=$ip3
fi

url='ip.whark.cn'

#change your name
name='test_ubuntu'

while getopts :ha:o:i: OPTION
do
case $OPTION in
a) name=$OPTARG ;;
o) ip1=$OPTARG ;;
i) ip2=$OPTARG ;;
h)
echo -e "help:\n  -a \tname"
echo -e "  -o \tthe outside ip"
echo -e "  -i \tthe inside ip"
echo -e "  -h \thelp document"
exit ;;
\?) ;;
esac
done

url2="$url?outside_ip=$ip1&inside_ip=$ip2&name=$name"
#echo $url2
curl $url2

echo -e "Client : Successful!"

编辑ip.sh并保存

chmod +x ip.sh

查询IP并上传

./ip.sh

然后在 ip.whark.cn 查看
也可以使用参数,”-h” 获取参数列表

./ip.sh --help
# -a 指定本机的名称,如:
./ip.sh -a test_ubuntu

配置开机自动执行

config.sh

#!/bin/bash
path=`pwd`
file_name="ip.sh"
file_path="$path/$file_name"

echo "#auto upload local ip address" >> /etc/rc.d/rc.local

#change your name in here
#echo "$file_path -a your_name > /dev/null" >> /etc/rc.d/rc.local

if [ ! -n "$1" ]
then
    echo "$file_path > /dev/null 2>&1" >> /etc/rc.d/rc.local
else
    echo "$file_path -a $1 > /dev/null 2>&1" >> /etc/rc.d/rc.local
fi

编辑config.sh并保存

chmod +x config.sh

执行config.sh,添加到开机启动

./config.sh

可直接添加参数name

./config.sh your_name

第二次配置时,需要将 /etc/rc.d/rc.local 文件中,前一次添加的内容删除