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

群晖自动更新hosts

Yuki2024-01-13 09:53:33NAS256

关于群晖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、在容器菜单,找到刚才已经停止的“待更新”容器,点[...

群晖Docker安装LXQT并解决无法输入中文问题

群晖Docker安装LXQT并解决无法输入中文问题

安装lqxt套件中心搜索查找LXQT并安装套件lqxt修改显示中文打开lxqt里的qterminal,输入sudo apt update && sudo apt upgrade改时区: 输入sudo -i 后再输入sudo dpkg-reconfigure tzdata  ...

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

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

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

关于最近docker套件无法读取注册表、拉取镜像的解决办法

关于最近docker套件无法读取注册表、拉取镜像的解决办法

据不可靠消息,https://hub.docker.com 应该是被墙了...Docker搜索应该是只能使用官方地址registry.hub.docker.com,被墙导致:查询注册表失败注意:被墙无法通过修改hosts来解决,只能魔法。1、打开docker套件-注册表-设置2、注册表镜像...

Jellyfin封面图和字幕乱码解决办法

Jellyfin封面图和字幕乱码解决办法

封面解决方法1.在 docker中 打开 bash。具体地方 容器实例 -> 详情 -> 终端机 -> 新增 -> bash 2.在 bash 里面执行:apt update3.等待完成后输入apt install fonts-noto-cjk-extra4.按Y确...

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

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

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