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

群晖自动更新hosts

Yuki2024-01-13 09:53:33NAS544

关于群晖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” 的相关文章

清理NAS上无用docker残留文件

清理NAS上无用docker残留文件

清理docker未使用文件打开NAS的ssh功能获取管理员权限,输入sudo -i后再输入密码。输入命令docker volume prune该命令意为删除docker服务无用的卷执行后会提示,选择y即可随后会自动清理无用的docker文件夹,命令执行结束后会看到统计清理了多少内存出来。除了以上的命...

群晖更新Docker容器方法

群晖更新Docker容器方法

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

群晖NAS实现外网映射本地磁盘访问

群晖NAS实现外网映射本地磁盘访问

1、我的电脑右键管理,点服务,找到WebClient服务,设置启动类型设置为自动2、同时按windows+R按键打开运行,输入regedit打开注册表,然后到注册表找到下面的路径HKEY_ LOCAL_MACHINE\SYSTEMICurrentControlSet\Services\WebClie...

群晖配置Clash

群晖配置Clash

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

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

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

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

WinSCP修改NAS文件

WinSCP修改NAS文件

1 打开WinSCP root权限1.1 控制面板 - 终端机和SNMP - 启动SHH功能1.2 下载putty,填入NAS地址,填写端口号,选择SSH,点击Open1.3 弹出的页面中输入帐号密码(输入时无显示正常)1.4 然后输入sudo -i 输入密码进入root模式2 启用roo...