腾讯云 ddns 配置 shell 脚本

#!/usr/bin/env bash

# =========================================
# 个人信息
# =========================================
domain='yourdoman.com'
subDomain='www'
sId='腾讯云id'
sKey='腾讯云秘钥'
# 一般不会变动,所以手动就行,包含在注释掉的打印信息中
recordId='记录id'
# =========================================

signatureMethod='HmacSHA1'
timestamp=$(date +%s)
nonce=$(head -200 /dev/urandom | cksum | cut -f2 -d" ")
region=bj
url="https://cns.api.qcloud.com/v2/index.php"

# 获取 IP 的 api,可以自己替换
ip=$(curl -s ip.cip.cc)

action='RecordList'

src=$(printf "GETcns.api.qcloud.com/v2/index.php?Action=%s&Nonce=%s&Region=%s&SecretId=%s&SignatureMethod=%s&Timestamp=%s&domain=%s" $action $nonce $region $sId $signatureMethod $timestamp $domain)
signature=$(echo -n $src | openssl dgst -sha1 -hmac $sKey -binary | base64)
params=$(printf "Action=%s&domain=%s&Nonce=%s&Region=%s&SecretId=%s&Signature=%s&SignatureMethod=%s&Timestamp=%s" $action $domain $nonce $region $sId "$signature" $signatureMethod $timestamp)

ret=$(curl -s -G -d "$params" --data-urlencode "Signature=$signature" "$url")

# echo $ret # recordId 在这里打印,打开这里运行一次

echo $ret | grep $ip > /dev/null

if [[ $? = 0 ]]; then
    echo '无需更新'
else
    action='RecordModify'
    recordType='A'
    recordLine='默认'

    src=$(printf "GETcns.api.qcloud.com/v2/index.php?Action=%s&Nonce=%s&Region=%s&SecretId=%s&SignatureMethod=%s&Timestamp=%s&domain=%s&recordId=%s&recordLine=%s&recordType=%s&subDomain=%s&value=%s" $action $nonce $region $sId $signatureMethod $timestamp $domain $recordId $recordLine $recordType $subDomain $ip)
    signature=$(echo -n $src | openssl dgst -sha1 -hmac $sKey -binary | base64)
    params=$(printf "Action=%s&Nonce=%s&Region=%s&SecretId=%s&SignatureMethod=%s&Timestamp=%s&domain=%s&recordId=%s&recordLine=%s&recordType=%s&subDomain=%s&value=%s" $action $nonce $region $sId $signatureMethod $timestamp $domain $recordId $recordLine $recordType $subDomain $ip)

    ret=$(curl -s -G -d "$params" --data-urlencode "Signature=$signature" "$url")
    echo $ret | grep 'code":0' > /dev/null

    if [[ $? = 0 ]]; then
        echo '更新成功'
    else
        echo '更新失败'
        exit 1
    fi
fi


将以上执行脚本加入计划任务,参考以下链接:

https://blog.csdn.net/katyusha1/article/details/78619549

猜你喜欢

转载自blog.csdn.net/guoruijun_2012_4/article/details/116488156
今日推荐