当前位置:首页 > NAS > 正文内容

群晖自动更新hosts

Yuki2024-01-13 09:53:33NAS589

关于群晖NAS video station TMDB连接测试失败及搜刮结果下载失败的解决方案

QQ截图20240113100231.png

如果使用过别的脚本或者hosts手动添加过相关的地址可以先在任务计划中执行以下脚本来清理hosts文件


#!/bin/sh

LOCAL_HOST_LIST=`cat /etc/hosts | grep -v "127.0.0.1\|::1\|^$"`

for HOST in $LOCAL_HOST_LIST; do

      sed -i "/$HOST/d" /etc/hosts

done


如果hosts文件没有修改过不需要这一步


控制面板——任务计划——新增(用户自定义脚本)

填写任务名称,账户选择root

运行命令栏填写以下代码

手动执行——运行

#!/bin/sh

# DOMAIN_HOST=1为启用0为关闭自定义域名hosts文件写入,GITHUB_HOST=1为启用0为关闭github域名hosts文件写入。

DOMAIN_HOST=1

GITHUB_HOST=0

# DOMAIN_LIST自定义域名列表,多域名以空格隔开,这里的域名会通过国外的DNS API返回正确的IP写入hosts文件以解决DNS污染问题。

DOMAIN_LIST=(api.themoviedb.org image.tmdb.org)

GITHUB_HOST_URL="https://hosts.gitcdn.top/hosts.txt"

DNS_API="https://networkcalc.com/api/dns/lookup"

REMOTE_GITHUB_HOST_AT=`curl -s $GITHUB_HOST_URL | grep -w "# last fetch time:"`

LOCAL_GITHUB_HOST_AT=`cat /etc/hosts | grep -w "# last fetch time:"`


check_domain_host(){

    for DOMAIN in ${DOMAIN_LIST[@]}; do

        DOMAIN_IP_LIST=`curl -k -X GET $DNS_API/$DOMAIN | jq -r '.records.A[].address'`

        if [ "$DOMAIN_IP_LIST" != "" ]; then

           for DOMAIN_IP in "$DOMAIN_IP_LIST"; do

               if [[ `cat /etc/hosts | grep -wc $DOMAIN_IP` = 0 ]]; then

                  [[ `cat /etc/hosts | grep -wc "fetch-domain-hosts"` != 0 ]] && sed -i "/# fetch-domain-hosts begin/Q" /etc/hosts

               fi

           done

        fi

    done

}


write_domain_host(){

    if [[ `cat /etc/hosts | grep -wc "fetch-domain-hosts"` = 0 ]]; then

        echo "# fetch-domain-hosts begin" >> /etc/hosts

        for DOMAIN in ${DOMAIN_LIST[@]}; do

            DOMAIN_IP_LIST=`curl -k -X GET $DNS_API/$DOMAIN | jq -r '.records.A[].address'`

            for DOMAIN_IP in $DOMAIN_IP_LIST; do

                echo -e "$DOMAIN_IP\t\t$DOMAIN" >> /etc/hosts

            done

        done

        echo "# fetch-domain-hosts end" >> /etc/hosts

    fi

}


if [ $DOMAIN_HOST = 1 ]; then

    check_domain_host

    write_domain_host

else

    [[ `cat /etc/hosts | grep -wc "fetch-domain-hosts"` != 0 ]] && sed -i "/# fetch-domain-hosts begin/Q" /etc/hosts

fi

if [ $GITHUB_HOST = 1 ]; then

    if [ "$REMOTE_GITHUB_HOST_AT" != "" ]; then

        [[ `cat /etc/hosts | grep -wc "fetch-github-hosts"` = 0 ]] && curl $GITHUB_HOST_URL >> /etc/hosts

        if [[ "$REMOTE_GITHUB_HOST_AT" != "$LOCAL_GITHUB_HOST_AT" ]];then

            sed -i "/# fetch-github-hosts begin/Q" /etc/hosts && curl $GITHUB_HOST_URL >> /etc/hosts

        else

            echo "HOST无需更新"

        fi

    fi

else

    [[ `cat /etc/hosts | grep -wc "fetch-github-hosts"` != 0 ]] && sed -i "/# fetch-github-hosts begin/Q" /etc/hosts

fi




扫描二维码推送至手机访问。

版权声明:本文由发布,如需转载请注明出处。

本文链接:http://suzumiya.fun:8003/?id=27

分享给朋友:

“群晖自动更新hosts” 的相关文章

群晖更新Docker容器方法

群晖更新Docker容器方法

事实上Docker容器不存在更新一说,只有替换,用新的替换旧的以达到“更新”的目的 1、打开Docker在注册表菜单搜索“需要更新的文件”点击下载2、打开Docker侧栏中的容器菜单,找到正在运行的“待更新”容器,点最右边的开关停止运行3、在容器菜单,找到刚才已经停止的“待更新”容器,点[...

群晖开启SSH修改hosts并解决vs刮削下载失败问题

群晖开启SSH修改hosts并解决vs刮削下载失败问题

修改群晖host打开群晖终端机开启SSH,自定义端口号输入账号输入密码(此处不显示)更改root权限:sudo -i再次输入密码(此处不显示)查看hosts:vi /etc/hostsi 进入编辑模式输入待修改ipEsc 键退出编辑模式:wq 退出编辑解决搜刮信息出现下...

群晖安装Zerotier实现无公网内网穿透

群晖安装Zerotier实现无公网内网穿透

申请Zerotier账号https://www.zerotier.com/ 申请账号点击Create A Network创建网络拷贝并记录network ID备用网络名字可改可不改,其他的设置(路由、IPV4等)全部默认或任选一个即可,不用改动。 群晖docker安装zerotier在do...

解决华擎J3455群晖918开关机极慢及局域网传输极低问题

解决华擎J3455群晖918开关机极慢及局域网传输极低问题

华擎J3455主板在安装使用黑群晖918时,开机引导到进入系统大约10分钟左右,而且局域网千兆传输最低甚至只有十几兆,所以这块主板也是NAS伙伴诟病最多的一块妖板。现在可以通过修改华擎j3455主板的,彻底解决安装使用群晖DSM系统时,开机启动极慢、局域网传输速度极不稳定,u盘传输异常等等问题。修改...

Navicat连接docker容器中的mysql报2059错误

Navicat连接docker容器中的mysql报2059错误

原因:即从mysql5.7版本之后,mysql更新了验证方式,默认采用了caching_sha2_password验证方式,需要修改验证方式。解决方法:1、进入docker容器//获得mysql容器id docker ps docker exec -it&nbs...

群晖激活Advanced Media Extensions 3.0

群晖激活Advanced Media Extensions 3.0

能够成功激活的前提是你的群晖为半白(有正确的SN号)将以下代码保存为AME.py上传至NASimport hashlibimport osr = ['669066909066906690', 'B801000000', '30']s = [(0x1F2...