????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.17.141.193 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /etc/resolvconf/update.d/ |
Upload File : |
#!/bin/sh # # Script to update every forwarding djbdns dnscache instance running # on the local machine # # this script sets up every FORWARDONLY dnscache managed by either # daemontools or runit on this machine to use the dynamically-offered # nameservers for the default '@' # # Assumption: On entry, PWD contains the resolv.conf-type files # # If no nameservers are offered, we ask the dnscache instances to fall # back to the root nameservers listed in /etc/dnsroots.global # # Licensed under the GNU GPL. See /usr/share/doc/resolvconf/copyright. # # Written by Daniel Kahn Gillmor <dkg-debian.org@fifthhorseman.net> # based on similar scripts by Thomas Hood set -e PATH=/usr/sbin:/usr/bin:/sbin:/bin [ -x /usr/bin/dnscache ] || exit 0 [ -x /lib/resolvconf/list-records ] || exit 1 ETC=/etc TMPFILE="/run/resolvconf/dnscache_new.$$" DEFAULTROOTS="${ETC}/dnsroots.global" CACHES="" # Which directories do we scan? # /var/lib/svscan: daemontools, built "the debian way" (LFS-compliant) # /service: daemontools, built "the djb way" # /var/service: runit for SERVICEDIR in /var/lib/svscan /service /etc/service ; do # We'll only manage caches actually managed by daemontools or runit. if [ -d "$SERVICEDIR" ] ; then OLDCWD=`pwd` cd "$SERVICEDIR" for SVC in * ; do SVC="$SERVICEDIR/$SVC" if \ [ -d "$SVC" ] \ && [ -f "$SVC/run" ] \ && [ ! -f "$SVC/down" ] \ && [ -d "$SVC/root" ] \ && [ -d "$SVC/root/servers" ] \ && [ -d "$SVC/root/ip" ] \ && [ -s "$SVC/env/FORWARDONLY" ] \ && grep -q dnscache "$SVC/run" then CACHES="$SVC $CACHES" fi done cd "$OLDCWD" fi done # Stores arguments (minus duplicates) in RSLT, separated by spaces # Doesn't work properly if an argument itself contain whitespace uniquify() { RSLT="" while [ "$1" ] ; do for E in $RSLT ; do [ "$1" = "$E" ] && { shift ; continue 2 ; } done RSLT="${RSLT:+$RSLT }$1" shift done } RSLVCNFFILES="$(/lib/resolvconf/list-records)" ### Compile list of nameservers ### NMSRVRS="" if [ "$RSLVCNFFILES" ] ; then uniquify $(sed -n 's/^[[:space:]]*nameserver[[:space:]]\+//p' $RSLVCNFFILES) NMSRVRS="$RSLT" fi clean_up() { rm -f "$TMPFILE" ; } trap clean_up EXIT clean_up # If no nameservers were present, use the default root nameservers # provided by the djbdns package: if [ -z "$NMSRVRS" ] && [ -e "$DEFAULTROOTS" ] ; then cp "$DEFAULTROOTS" "$TMPFILE" else : > "$TMPFILE" for N in $NMSRVRS ; do echo "$N" >> "$TMPFILE" done fi # svc is the daemontools service controller SVC_CMD="$(which svc)" || : [ ! "$SVC_CMD" ] && [ -x /command/svc ] && SVC_CMD=/command/svc # sv is the runit service controller SV_CMD="$(which sv)" || : for CACHE in $CACHES ; do cp "$TMPFILE" "$CACHE/root/servers/@" # Restart the cache if it's already running: if [ "$SV_CMD" ] && \ [ -e "$CACHE/supervise/pid" ] && \ [ -e "$CACHE/supervise/stat" ]; then # services managed by runit have supervise/{pid,stat} "$SV_CMD" restart "$CACHE" else # otherwise, it is probably managed by daemontools [ "$SVC_CMD" ] && "$SVC_CMD" -t "$CACHE" fi done