腾讯云 DDNS shell 脚本

参考文章:https://blog.csdn.net/dragon2k/article/details/88016755

在此基础上进行修改,以达到我个人日常使用的目的。
贴出代码以供参考
进都进来了,我就默认你基础的东西都弄好了,只差脚本了

#!/usr/bin/env bash

# =========================================
# 个人信息
# =========================================
domain='xxx.com'
subDomain='www'
sId='去自己的控制台-访问密钥 获取'
sKey='去自己的控制台-访问密钥 获取'
# 一般不会变动,所以手动就行,包含在注释掉的打印信息中
recordId='一串数字'
# =========================================

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

crontab -e

加入

*/10 * * * * /你的脚本位置

每十分钟跑一次,因为出错率很小,所以就不做日志了
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值