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

群晖自动更新hosts

Yuki2024-01-13 09:53:33NAS208

关于群晖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安装LXQT并解决无法输入中文问题

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

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

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

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

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

群晖配置Clash

群晖配置Clash

配置文件创建config.yaml文件,需要上传到群晖的/docker/clash/文件夹中*只能用yaml不能用yml修改如下信息 # HTTP 代理端口port: 7890# SOCKS5 代理端口socks-port: 7891# 混合代理端口mixed-port: 7890# Li...

群晖Docker安装MT Photos照片管理

群晖Docker安装MT Photos照片管理

下载映像在【注册表】栏目下,输入 mt-photos ,然后点击【搜索】在搜索结果中点中mtphotos/mt-photos,然后点击【下载】创建容器在【映像】栏目下,等待映像下载完成下载完成后,点击【启动】来创建容器高级设置存储空间photo(装载照片路径)  &nb...

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

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

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

Jellyfin提示:该客户端与媒体不兼容,服务器未发送兼容的媒体格式,解决办法

Jellyfin提示:该客户端与媒体不兼容,服务器未发送兼容的媒体格式,解决办法

下载FFmpeg官网下载 选择Linux32-bit and 64-bit for kernel选择最新的amd64位下载安装FFmpeg解压并上传到jellyfin共享文件夹中现在进入jellyfin的管理页面,控制台-播放设置-FFmpeg路径选择上述共享文件夹测试播放...