Scripts

Diese Seite ist voll von kleinen (und nicht-so-wenig) Skripte. Einige der Arbeiten unten ist schlecht geschrieben, aber dennoch nützlich. Wenn ich ein Skript zu aktualisieren, werde ich es an die Spitze stoßen. Sofern nicht anders angegeben, sind diese Skripte Copyright Brendan ausblenden und sind unter der GPLv3-Lizenz.

Ich bin immer noch herauszufinden, was wahrscheinlich der beste Weg zu dieser Seite zu halten, so seien Sie nicht überrascht, wenn die Dinge drunter und drüber gehen.

DIM - minimal-DNS-Lookup Ergebnisse

  1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
  #! / Bin / bash
 # Autor: Brendan Hide (http://swiftspirit.co.za/)
 # Copyright: (c) Brendan ausblenden, Lizenz veröffentlicht unter der GPLv3
 # Siehe Details http://www.gnu.org/licenses/gpl-3.0.html für die Lizenz
 # Name: dim
 # Release Version: 0.1 (2009.05.08)
 # TODO: - help
 # Beschreibung: liefert nur Ergebnisse graben (keine Flusen)
 # Vielen Dank an Nico Visser für die Inspiration
 # Ja, ich denke, es ist lustig, dass jetzt, dieser Kommentar ist ein One-Liner mit 10 Zeilen

 grep . | grep -v "^;" dig $ * | grep. | grep-v "^;" 

mydigns - Geben Sie einen DNS-Server durch andere graben verwendeten Skripte

  1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 rotate { old = ` cat ~ / .mydigns ` #reform trodden = "false" head -n 1 ~ / .mydigns.all > ~ / .mydigns.tmp cat ~ / .mydigns.all | while read nameserver ; do if [ " $trodden " == "true" ] ; then echo $nameserver > ~ / .mydigns.tmp break fi if [ " $nameserver " == " $old " ] ; then trodden = "true" fi done mv -f ~ / .mydigns.tmp ~ / .mydigns } #rotate function usage { echo "mydigns - provides a DNS server name from ~/.mydigns for untarnished dns lookups" echo "Usage: mydigns [OPTIONS]" echo echo "  -a servername    Add servername to the list of servers at ~/.mydigns.all" echo "  -r               Rotate a new servername from ~/.mydigns.all into ~/.mydigns" echo "  -h               Show this Help information" } function sortlist { cat ~ / .mydigns.all | sort | uniq > ~ / .mydigns.all.tmp mv -f ~ / .mydigns.all.tmp ~ / .mydigns.all } while getopts ":a:rh" options; do case $options in a ) echo $OPTARG >> ~ / .mydigns.all ;; r ) rotate ;; h ) usage ; exit 0 ;; \? ) usage; exit 1 ;; * ) usage; exit 1 ;; esac done sortlist cat ~ / .mydigns #! / Bin / bash # Name: mydigns # Autor und Copyright: Brendan Hide (http://swiftspirit.co.za/) # Release Version: 0.4 (2009.04.10) # TODO: Lange Optionen - bash builtin getopts nicht unterstützt SunOS-style x (xlong) Parameter Funktion drehen (alt = `cat ~ /. mydigns` # Reform ausgetretenen = "false" head-n 1 ~ /. mydigns.all> ~ /. mydigns.tmp cat ~ /. mydigns.all | while read nameserver; tun if ["$ ausgetretenen" == "true"]; then echo $ nameserver> ~ /. mydigns.tmp break fi if ["$ nameserver" == "$ alt"] , dann betreten = "true" fi done mv-f ~ /. mydigns.tmp ~ /. mydigns) # (Drehfunktion Nutzung echo "mydigns - bietet einen DNS-Server-Name von ~ /. mydigns für ungetrübten DNS-Lookups" echo "Usage : mydigns [OPTIONS] "echo echo"-a servername hinzufügen servername, um die Liste der Server in ~ /. mydigns.all "echo"-r Drehen eines neuen servername aus ~ /. mydigns.all in ~ /. mydigns "echo" -h Zeigt diese Hilfeinformationen ") function sortlist (cat ~ /. mydigns.all | Sortieren | uniq> ~ /. mydigns.all.tmp mv-f ~ /. mydigns.all.tmp ~ /. mydigns.all) while getopts ": a: rh" Optionen; tun bei $ options in a) echo $ OPTARG>> ~ /. mydigns.all;; r) drehen;; h) Nutzung; exit 0;; \?) Nutzung; exit 1; ; *) Verwendung; exit 1;; esac done sortlist cat ~ /. mydigns 

authcheck - bash - Basic HTTP Erreichbarkeit überprüfen

  1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
  #! / Bin / bash
 # Name: authcheck
 # Autor und Copyright: Brendan Hide (http://swiftspirit.co.za/)
 # Release Version: 0.3 (2009.04.09)
 # TODO: nil

 # Wenn Sie Server-Admin-Rechte haben, die, Eingabe von Text in das Geheimnis ein Kommentar der Default-Seite
 # SECRETTEXT = `echo" tricky geheime Text "| md5sum | awk ('print $ 1')`
 SECRETTEXT = "tricky geheime Text"

 .$$" RANDSET = "$ RANDOM. $ $"
 .huh.htm" HUF = "/ tmp / .authcheck. $ RANDSET. Huh.htm"
 .def.htm" DEF = "/ tmp / .authcheck. $ RANDSET. Def.htm"

 ; rm -f $DEF " INT TERM EXIT trap "rm-f $ HUF; rm-f $ DEF" INT TERM EXIT

 $# -eq 1 ] if [$ #-eq 1]
  dann
   2 -t 3 -O - $ 1 / huh.htm 2 >& 1 | cat > $HUH wget - no-cache-t T 2-3-O - $ 1 / huh.htm 2> & 1 | cat> $ HUF
   2 -t 3 -O - $ 1 2 >& 1 | cat > $DEF wget - no-cache-t T 2-3-O - $ 1 2> & 1 | cat> $ DEF
   " < $HUH > / dev / null && echo "Domain $1 is being served by the default site on the server" grep "$ SECRETTEXT" <$ HUF> / dev / null & & echo "$ 1 Domain wird vom Server bereitgestellt werden standardmäßig auf der Website"
   < $DEF > / dev / null && echo "Domain $1 is not responding - \" Giving up \" " grep "Aufgeben" <$ DEF> / dev / null & & echo "Domain $ 1 ist nicht mehr reagiert - \" Giving up \ ""
   < $DEF > / dev / null && echo "Domain $1 is not reachable - \" No route to host \" " grep "No route to host" <$ DEF> / dev / null & & echo "Domain $ 1 ist nicht erreichbar - \" No route to host \ ""
   < $DEF > / dev / null && echo "Domain $1 has ACL issues - 401 Unauthorized" grep "401 Unauthorized" <$ DEF> / dev / null & & echo "Domain $ 1 ACL issues - 401 Unauthorized"
   < $DEF > / dev / null && echo "Domain $1 has no default content and directory browsing is forbidden - 403 F$ grep "403 Forbidden" <$ DEF> / dev / null & & echo "Domain $ 1 wurde kein Standard-Inhalte und das Durchsuchen von Verzeichnissen ist verboten - 403 F $ 
   " else echo "Usage: authcheck domainname" 
  fi 

  rm-f $ HUF 
  rm-f $ DEF 

  Trap - INT TERM EXIT 

pidofp - Linux - gibt die Prozess-ID (PID) der Anwendung der Muttergesellschaft

  1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 [ $# -gt "0" ] then for i in ` pidof $ 1 ` ; do cat / proc / $i / status | grep PPid | awk '{printf $2} {printf " "}' done echo else echo "pidofp : print the parent \$ PID" echo "Usage: pidofp program" echo " See also: pidof" fi #! / Bin / bash # Name: pidofp # Autor und Copyright: Brendan Hide (http://swiftspirit.co.za/) # Release Version: 0.2 (2009.03.17) # TODO: Mehrere Eltern-of-Check ; ausführliche Ausgabe-Format Optionen if [$ #-gt "0"] then for i in `pidof $ 1`; tun cat / proc / $ i / status | grep PPID | awk '(printf $ 2) (printf "") " done echo else echo "pidofp: print des Mutterunternehmens \ $ PID" echo "Usage: pidofp Programm" echo "Siehe auch: pidof" fi 

RD (| c) - Remote-Desktop-Skripte in einem Microsoft Windows Server anmelden

  1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
  #! / Bin / bash
 # Name: RD
 # Autor und Copyright: Brendan Hide (http://swiftspirit.co.za/)
 # Release Version: 1.3.0 (2009.03.17)
 # TODO: verschlüsselte Speicherung von Passwörtern zu unterstützen; getopts
 # Lizenz: GPLv3
 # Installation http://dogma.swiftspirit.co.za/archives/11 fallen bei

 # DEFAULTS
 res = "1024x768"
 readonlyshare = "/ media / RD"
 writableshare = "/ media / rd / Honig"
 defaultuser = "Administrator"

 # Sie sollten normalerweise nicht in der Schlange nichts ändern unterhalb dieser

 ~ / .rd ] && . [-E ~ /. RD] & &.  ~ /. RD

 usageinfo = "echo Usage: RD (c) [-s shell] Server [username]"

 Remote-Funktion (

 .log" tmplog = "/ tmp / .rd. $ RANDOM. log"

 =$ 1 -r disk: rd =$ 2 -g $ 3 -a $ 4 -k $ 5 $ 6 -u $ 7 $ 8 $ 9 2 > $tmplog .err > $tmplog rdesktop-r disk: rd = 1 $-r disk: RD = $ g $ 2-3-4-a $ k $ 5 $ 6-u $ 7 $ 8 $ 9 2> $ tmplog. err> $ tmplog 

 remotehost = $ 8

 .err | grep -i error cat $ $ tmplog tmplog. err | grep-i-Fehler
 .err | grep -i error > / dev / null && echo -n Remote Desktop to $remotehost failed. cat $ $ tmplog tmplog. err | grep-i error> / dev / null & & echo-n Remote Desktop bis zu $ remotehost gescheitert.
 .err | grep "unable to resolve host" > / dev / null && echo " Could not resolve host name." cat $ $ tmplog tmplog. err | grep "unable to host beheben"> / dev / null & & echo "Konnte nicht gefunden werden."
 .err | grep "ERROR: recv: Connection reset by peer" > / dev / null && echo You may have been disconnected by another user on $remotehost . cat $ $ tmplog tmplog. err | grep "ERROR: recv: Connection von Peer zurückgesetzt"> / dev / null & & echo Sie auf einen anderen Benutzer können remotehost wurden getrennt durch $.
 .err | grep "ERROR: .*: Connection refused" > / dev / null && echo The server $remotehost refused the connection. cat $ $ tmplog tmplog. err | grep "ERROR: .*: Connection refused"> / dev / null & & echo $ remotehost Der Server verweigert die Verbindung.
 .err | grep -i error > / dev / null && echo -n Press [ Enter ] to continue. cat $ $ tmplog tmplog. err | grep-i error> / dev / null & & echo-n Drücken Sie [weiter Enter] um.                                       

 # Kommentieren Sie diese für Debugging-Zwecke
 $tmplog rm-f $ tmplog
 $tmplog .err rm-f $ tmplog. err                         

 ) # Funktion Remote

 echo $ 0 | sed -r 's/.+\/([^\/]*)$/\1/' ` myCmd = `echo $ 0 | sed-r 's /. + \ / ([^ \ /]*)$/ \ 1 /'`

 " $mycmd " == "rdc" ] if ["$ myCmd" == "RDC"]
  = "-0" dann rdconsole = "-0"
  = "" sonst rdconsole = ""
 fi

 1 | grep "command not found" > / dev / null && echo "The rdesktop client was not found." && echo "Please install it from your distribution or see http://www.rdesktop.org/" && exit 8 rdesktop 2> & 1 | grep "Befehl nicht gefunden"> / dev / null & & echo "Die rdesktop-Client wurde nicht gefunden." & & echo "Bitte installieren Sie es von Ihrer Distribution oder sehen http://www.rdesktop.org/" & & Ausfahrt 8

 in case $ 1 in
  $usaginfo ;; "-H") $ usaginfo;;
  $usageinfo ;; "- Help") $ usageinfo;;
  case $# in *) Case $ # in
      $usageinfo ;; 0) $ usageinfo;;
      case $ 1 in 1) case $ 1 in
          "Invalid syntax: -s without a shell argument" ; $usageinfo ;; "-S") echo "Ungültige Syntax:-s ohne Shell-Argument"; $ usageinfo;;
          "Invalid syntax: --shell without a shell argument" ; $usageinfo ;; "- Shell") echo "Ungültige Syntax: - Shell, ohne Shell-Argument"; $ usageinfo;;
          remote $readonlyshare $writableshare $res 16 en-us -z $defaultuser $ 1 $rdconsole & ;; *) Entfernten $ $ readonlyshare writableshare $ res 16 en-us-$ z $ 1 $ defaultuser rdconsole &;;
         esac;;
      case $ 1 in 2) case $ 1 in
          "Invalid syntax: no server argument" ; $usageinfo ;; "-S") echo "Ungültige Syntax: keine server-Argument"; $ usageinfo;;
          "Invalid syntax: no server argument" ; $usageinfo ;; "- Shell") echo "Ungültige Syntax: keine server-Argument"; $ usageinfo;;
          remote $readonlyshare $writableshare $res 16 en-us -z $ 2 $ 1 $rdconsole & ;; *) Entfernten $ $ readonlyshare writableshare $ res 16 en-us-z $ 2 $ 1 $ & rdconsole;;
         esac;;
      case $ 1 in 3) case $ 1 in
          remote $readonlyshare $writableshare $res 16 en-us -z $defaultuser $ 3 -s $ 2 $rdconsole & ;; "-S") Remote $ $ readonlyshare writableshare $ res 16 en-us-$ z defaultuser $ 3 $ 2 $ s rdconsole &;;
          remote $readonlyshare $writableshare $res 16 en-us -z $defaultuser $ 3 -s $ 2 $rdconsole & ;; "- Shell") Remote $ $ readonlyshare writableshare $ res 16 en-us-$ z defaultuser $ 3 $ 2 $ s rdconsole &;;
          -n "Invalid syntax: " ; $usageinfo ;; *) Echo-n "Ungültige Syntax:"; $ usageinfo;;
         esac;;
      case $ 1 in 4) case $ 1 in
          remote $readonlyshare $writableshare $res 16 en-us -z $ 4 $ 3 -s $ 2 $rdconsole & ;; "-S") Remote $ $ readonlyshare writableshare $ res 16 en-us-z $ 4 $ 3 $ 2 $ s rdconsole &;;
          remote $readonlyshare $writableshare $res 16 en-us -z $ 4 $ 3 -s $ 2 $rdconsole & ;; "- Shell") Remote $ $ readonlyshare writableshare $ res 16 en-us-z $ 4 $ 3 $ 2 $ s rdconsole &;;
          -n "Invalid syntax: " ; $usageinfo *) Echo-n "Ungültige Syntax:"; $ usageinfo
         esac;;
     esac;;
 esac 

Diga - dig speziell für ein A-Record

  1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
  #! / Bin / bash
 # Name: diga
 # Autor und Copyright: Brendan Hide (http://swiftspirit.co.za/)
 # Release Version: 0.2 (2009.03.17)
 # TODO: DNS-Server-Failover

 # Nameserver
 mydigns ` ns = `` mydigns
 $# = 1 ] ; then if [$ # = 1], dann
  $ns | grep SOA | grep -v "^;" | awk '/[.]/ && !/[;]/{print $5}' | xargs -i dig $ 1 A "@{}" | grep -v "^;" | grep . || SOARec =Fail dig soa $ 1 $ @ ns | grep SOA | grep-v "^;" | awk'/[.]/ & & print $ !/[;]/{ 5) '| xargs-i dig $ 1 ein "@ () "| grep-v" ^; "| grep. | | SOARec = Fail
  >> ~ / .diga.log echo "$ 1">> ~ /. diga.log
  " $SOARec " = "Fail" ] ; then if ["$ SOARec" = "Fail"], dann
   echo Keine SOA-Eintrag gefunden über $ ns
   $ns | grep -v "^;" | grep . || echo "No records found. Please try DNS-tracing." dig 1 $ @ $ ns | grep-v "^;" | grep. | | echo "Keine Datensätze gefunden. Bitte versuchen DNS-Tracing."
  fi
  "Usage: diga example.com" else echo "Usage: diga example.com"
 fi 
  • Share / Bookmark