浏览代码

Create technitiumdns-update.sh

tteckster 3 年之前
父节点
当前提交
0137e70d1b
共有 1 个文件被更改,包括 76 次插入0 次删除
  1. 76 0
      misc/technitiumdns-update.sh

+ 76 - 0
misc/technitiumdns-update.sh

@@ -0,0 +1,76 @@
+#!/bin/sh
+set -e
+dotnetDir="/opt/dotnet"
+dnsDir="/etc/dns"
+dnsTar="/etc/dns/DnsServerPortable.tar.gz"
+dnsUrl="https://download.technitium.com/dns/DnsServerPortable.tar.gz"
+
+mkdir -p $dnsDir
+installLog="$dnsDir/install.log"
+echo "" > $installLog
+
+echo ""
+echo "==============================="
+echo "Technitium DNS Server Update"
+echo "==============================="
+
+if dotnet --list-runtimes 2> /dev/null | grep -q "Microsoft.NETCore.App 5.0."; 
+then
+	dotnetFound="yes"
+else
+	dotnetFound="no"
+fi
+
+	if [ -d $dotnetDir ]
+	then
+	    dotnetUpdate="yes"
+		echo "Updating .NET 5 Runtime..."
+	fi
+
+	curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin -c 5.0 --runtime dotnet --no-path --install-dir $dotnetDir --verbose >> $installLog 2>&1
+
+	if [ ! -f "/usr/bin/dotnet" ]
+	then
+		ln -s $dotnetDir/dotnet /usr/bin >> $installLog 2>&1
+	fi
+
+	if dotnet --list-runtimes 2> /dev/null | grep -q "Microsoft.NETCore.App 5.0."; 
+	then
+		if [ "$dotnetUpdate" = "yes" ]
+		then
+			echo ".NET 5 Runtime was updated successfully!"
+		fi
+	else
+		echo "Failed to update .NET 5 Runtime. Please try again."
+		exit 1
+	fi
+
+if curl -o $dnsTar --fail $dnsUrl >> $installLog 2>&1
+then
+	if [ -d $dnsDir ]
+	then
+		echo "Updating Technitium DNS Server..."
+	fi
+	
+	tar -zxf $dnsTar -C $dnsDir >> $installLog 2>&1
+	
+	if [ "$(ps --no-headers -o comm 1 | tr -d '\n')" = "systemd" ] 
+	then
+		if [ -f "/etc/systemd/system/dns.service" ]
+		then
+			echo "Restarting systemd service..."
+			systemctl restart dns.service >> $installLog 2>&1
+		fi
+	
+		echo ""
+		echo "Technitium DNS Server was updated successfully!"
+	else
+		echo ""
+		echo "Failed to update Technitium DNS Server: systemd was not detected."
+		exit 1
+	fi
+else
+	echo ""
+	echo "Failed to download Technitium DNS Server from: $dnsUrl"
+	exit 1
+fi