腾讯云 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值