阿里云域名动态 IP 解析 Shell 小脚本

2020-03-30 15:25:12 +08:00
 zsg1994

Github:https://github.com/risfeng/aliyun-ddns-shell

当你手里面有一个闲置的域名,有一个漂浮不定的外网 ip,你又想在外网 ip 变更后自动解析到域名上,此情此景此脚本可能会帮上你。


使用步骤:

        > aliyun-ddns.sh (mac: > bash aliyun-ddns.sh)
        1.配置并执行脚本
        2.仅配置
        3.仅执行脚本
        4.恢复出厂设置
        5.清理日志文件
        0.退出

    - 带参数运行:
        aliyun-ddns.sh -config -run     配置并执行脚
        aliyun-ddns.sh -run             执行脚本(前提需要有配置文件)
        aliyun-ddns.sh -config          仅配置信息
        aliyun-ddns.sh -restore         恢复出厂设置(会清除配置文件等)
        aliyun-ddns.sh -clearn          清理日志文件
        aliyun-ddns.sh -version         显示脚本说明及版本信息

    service crond status   # 查看服务运行状态  
    service crond start    # 启动服务
    service crond stop     # 停止服务 
    service crond restart  # 重启服务  
    service crond reload   # 不中断服务,重新载入配置 
    crontab -e             # 编辑配置文件 
    crontab -l             # 列出某个用户的任务计划

- 配置任务定时任务
    - 建议不要把任务执行频率设置小于等 10,因为域名解析记录生效时间最短理论上是 10 分钟,往往都会超过 10 分,建议 15-20 分钟。
    - 开始配置
        crontab -e
        # 按 i 进入标记模式
        # 输入:
        */20 * * * * XXXXXX/aliyun-ddns-shell/src/aliyun/aliyun-ddns.sh -run >> XXXX/aliyun-ddns-shell/src/aliyun/crontab-log.log
        # 说明:
        # */20 * * * * :每 20 分钟执行一次 需要执行都脚本全路径 >> 执行日志输出位置全路径
        # 按 esc 后 输入:wq 回车 保存并退出

    - 重新加载配置:`service crond reload`
    - 注意观察任务是否成功执行,如有疑问请自行百度

效果图

欢迎 star 给予支持

GitHub


版权声明:本文为 ByteBlogs 博主「 risfeng 」的原创文章。
原文链接: https://www.byteblogs.com/article/488

2921 次点击
所在节点    程序员
8 条回复
koolpass
2020-03-30 15:59:42 +08:00
感谢 已经加星
zsg1994
2020-03-30 16:05:05 +08:00
@koolpass 感谢支持
chwhsen
2020-03-30 16:07:05 +08:00
如果路由器是 openwrt 或者 lede 的话,没必要做定时任务;把脚本放在 hotplug 文件夹下就行了;有奇效
goodryb
2020-03-30 16:08:03 +08:00
强烈建议使用子账号,只授予 DNS 解析配置权限。

主账号风险太高了
zsg1994
2020-03-30 16:08:57 +08:00
@goodryb 感谢您的建议,我会考虑的。
syuraking
2020-03-30 16:55:06 +08:00
建议添加 IPV6 支持
zsg1994
2020-03-30 16:59:39 +08:00
@syuraking 好的,后面版本加上,可以 star 支持一下
frlee
2020-04-02 17:40:38 +08:00
优点是他确实可以用,缺点是。。。

臃肿庞大 修改 shell 几个配置就好 还搞什么配置文件 配置文件目录在 debian 下目录是这样的 : /home/xxx/'~' 看起来很迷惑

再者,不需要先判断 ip 是否为新获取的吗,ip 不更新时每次运行脚本请求阿里云返回'The DNS record already exists' 你先判断为接口请求失败 最后又提示记录更新成功。。。

感觉刚需的功能没做好 一大堆没用的东西倒是加不少

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/657585

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX