Coder Social home page Coder Social logo

iscoconut / alidns-bash Goto Github PK

View Code? Open in Web Editor NEW

This project forked from qinghuas/alidns-bash

0.0 0.0 0.0 72 KB

使用阿里云提供的api,管理在阿里云购买的域名。支持增删查改等基本操作,以及配合crontab实现自建ddns的bash脚本

Shell 100.00%

alidns-bash's Introduction

简介

使用阿里云提供的 api,管理在阿里云购买的域名。支持增、删、查、改等基本操作,以及配合 crontab 实现自建 ddns 的 bash 脚本

配置

下载脚本

wget https://raw.githubusercontent.com/qinghuas/alidns-bash/master/aldns.sh

使用 vim 命令或 xftp 配合 Notepad++ 编辑 aldns.sh

  • 前往 https://usercenter.console.aliyun.com/ 获取 AccessKeyIdAccessKeySecret 后填入对应位置
  • ManagementDomain 后填入需要管理的域名。例如 github.com
  • API地址 ALiServerAddr 通常不需要更改
  • DDNS设置 ddns_record_idddns_record_value 如若不配置ddns服务请留空

配置运行环境使脚本通过自检

  • 未填入 AccessKeyId 会报错 缺少AccessKeyId. 并退出
  • 未填入 AccessKeySecret 会报错 缺少AccessKeySecret. 并退出
  • 未安装 jq 命令会报错 缺少 jq 命令. 并退出
  • 未安装 column 命令会报错 缺少 column 命令. 并退出
  • 若目录 /root/alidns 不存在会自动建立,用于存放请求响应文件以及日志

用法

  • 添加解析。执行该命令后按提示操作
bash aldns.sh add
  • 查看解析列表,同时将输出每条解析记录对应的 ID
bash aldns.sh list
  • 启用某个解析记录。须传入该解析记录 ID。假设 ID 为 19436255792427984 ,则执行
bash aldns.sh enable 19436255792427984
  • 停用某个解析记录。须传入该解析记录 ID。假设 ID 为 19436255792427984 ,则执行
bash aldns.sh disable 19436255792427984
  • 删除某个解析记录。须传入该解析记录 ID。假设 ID 为 19436255792427984 ,则执行
bash aldns.sh del 19436255792427984
  • 编辑某个解析记录。须传入该解析记录 ID。假设 ID 为 19436255792427984 ,则执行如下命令,然后按提示操作。若在设置新的主机记录和记录值时直接回车,将沿用旧的设置
bash aldns.sh edit 19436255792427984
  • 指定查询规则匹配解析记录。大小写敏感。例如,查询所有记录值为 8.8.8.8 的解析记录
bash aldns.sh search Value 8.8.8.8
  • 查询所有解析类型为 A 的解析记录。大小写敏感。可选 A/NS/MX/TXT/CNAME/SRV/AAAA/CAA/REDIRECT_URL/FORWARD_URL
bash aldns.sh search Type A
  • 查询所有主机记录为 ddns 的解析记录
bash aldns.sh search RR ddns

若确定查询结果仅有 1 条,可以在 主机记录值 后加上参数 edit ,进入该记录的修改流程

bash aldns.sh search RR ddns edit
  • 输出管理域名
bash aldns.sh account
  • 输出帮助信息
bash aldns.sh help
  • 输出 ddns 变更日志
bash aldns.sh log

管理多个域名

aldns.sh 复制一份后编辑 aldns2.sh 更改 ManagementDomain 项即可。如若域名在不同账户下,须填入对应账户的 AccessKeyIdAccessKeySecret

cp /root/aldns.sh /root/aldns2.sh

省去执行时所需的bash

执行如下命令后,后续调用可省略。例如 aldns list

mv /root/aldns.sh /usr/bin/aldns
chmod 755 /usr/bin/aldns

配置 DDNS

  • 首先添加一条A记录解析,然后获取解析记录ID,将解析记录ID与主机记录分别填入 ddns_record_idddns_record_value
  • 然后配置 crontab 添加定时任务。例如:每10分钟检查一次,则 crontab 的写法:
*/10 * * * * /bin/bash /root/aldns.sh ddns
  • ip 变更 log 文件位于 /root/alidns/ddns.domain.value.update.log

致谢

感谢 @h46incon 完成了阿里云API请求的基础框架与操作的项目 https://github.com/h46incon/AliDDNSBash

感谢 @ReMember 发布的文章 https://xvcat.com/post/1096

alidns-bash's People

Contributors

qinghuas avatar iscoconut avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.