Skriptsammlung: Unterschied zwischen den Versionen

Aus Geekbox Wiki
Wechseln zu: Navigation, Suche
K (Kategorie hinzugefügt)
(→‎Onlinefestplatten: Skript verbessert)
Zeile 38: Zeile 38:
 
########################################################################
 
########################################################################
   
−
fqmodus() #Funktion: Modus abfragen
+
function fqmodus() #Funktion: Modus abfragen
 
{
 
{
 
echo "Skript zum Anzeigen, Mounten und Unmounten von Onlinefestplatten"
 
echo "Skript zum Anzeigen, Mounten und Unmounten von Onlinefestplatten"
Zeile 45: Zeile 45:
   
   
−
fqplatte() #Funktion: Platte abfragen
+
function fqplatte() #Funktion: Platte abfragen
 
{
 
{
 
echo "Zur Auswahl stehen geekbox, t-online und MWN"
 
echo "Zur Auswahl stehen geekbox, t-online und MWN"
Zeile 52: Zeile 52:
   
   
−
fqnochmal() #Funktion: Abfrage ob nochmal
+
function fqnochmal() #Funktion: Abfrage ob nochmal
 
{
 
{
 
read -p " Fertig? (y/n) " fertig
 
read -p " Fertig? (y/n) " fertig
−
if [ "$fertig" == "y" ] || [ "$fertig" == "Y" ] || [ "$fertig" == "j" ] || [ "$fertig" == "J" ] || [ "$fertig" == "1" ]; then
 
  +
if [ "$fertig" == "y" ]; then return 1; fi
−
clear
 
−
exit
 
−
else
 
−
fhaupt
 
−
fi
 
 
}
 
}
   
   
−
fanzeigen() #Funktion: eingehängte Platten anzeigen
+
function fanzeigen() #Funktion: eingehängte Platten anzeigen
 
{
 
{
 
if [ "$(df -h | grep 'geekbox\|WebDAV\|MWN')" ]; then
 
if [ "$(df -h | grep 'geekbox\|WebDAV\|MWN')" ]; then
Zeile 71: Zeile 66:
 
echo "Kein Verzeichnis eingehängt"
 
echo "Kein Verzeichnis eingehängt"
 
fi
 
fi
−
fqnochmal
 
 
}
 
}
   
−
fpruef()
 
  +
  +
function fpruef() #Funktion: Prüfen, ob Mountpoint belegt
 
{
 
{
 
if [ "$(df | grep $1)" ]; then
 
if [ "$(df | grep $1)" ]; then
 
echo "Warnung: $1 ist bereits eingehängt"
 
echo "Warnung: $1 ist bereits eingehängt"
 
read -p " Trotzdem einhängen? (y/n) " trotzdem
 
read -p " Trotzdem einhängen? (y/n) " trotzdem
−
if !([ "$fertig" == "y" ] || [ "$fertig" == "Y" ] || [ "$fertig" == "j" ] || [ "$fertig" == "J" ] || [ "$fertig" == "1" ]); then
 
  +
if [ "$trotzdem" == "y" ]; then return 0; fi
−
fqnochmal
 
  +
return 1
−
fi
 
 
fi
 
fi
  +
return 0
 
}
 
}
   
   
−
fmount() #Funktion: Einhängen
 
  +
function ftest() #Funktion: Testen, ob wirklich ein/ausgehängt
 
{
 
{
−
case "$platte" in
+
case "$1" in
−
geekbox|g) #geekbox einhängen
+
m)
−
fpruef /media/geekbox
+
if [ "$(df | grep $2)" ]; then
−
sshfs <name>@geekbox.info:/ /media/geekbox
+
echo "$2 erfolgreich eingehängt"
−
if [ "$(df | grep /media/geekbox)" ]; then
 
−
echo "/media/geekbox erfolgreich eingehängt"
 
 
else
 
else
−
echo "/media/geekbox wurde nicht eingehängt"
+
echo "$2 wurde nicht eingehängt"
 
fi
 
fi
 
;;
 
;;
−
t-online|t) #t-online einhängen
 
  +
u)
−
fpruef /media/WebDAV
 
  +
if [ "$(df | grep $2)" ]; then
−
sudo mount -t davfs -o username=<username> https://webdav.mediencenter.t-online.de/ /media/WebDAV
 
  +
echo "$2 wurde nicht ausgehängt"
−
if [ "$(df | grep /media/WebDAV)" ]; then
 
−
echo "/media/WebDAV erfolgreich eingehängt"
 
 
else
 
else
−
echo "/media/WebDAV wurde nicht eingehängt"
 
  +
echo "$2 erfolgreich ausgehängt"
 
fi
 
fi
 
;;
 
;;
−
MWN|mwn|M|m) #MWN einhängen
 
  +
esac
−
fpruef /media/MWN
 
  +
}
−
if [ "$(ps ax | grep vpnc | grep -v grep)" ]; then #Prüfen, ob eine VPN-Verbindung zum MWN besteht
 
  +
−
sudo mount -t cifs -o username=<LRZ-Kennung>,domain=ADS //nas.ads.mwn.de/<LRZ-Kennung> /media/MWN/
 
  +
−
if [ "$(df | grep /media/MWN)" ]; then
 
  +
function fmount() #Funktion: Einhängen
−
echo "/media/MWN/ erfolgreich eingehängt"
 
  +
{
−
else
 
  +
case "$platte" in
−
echo "/media/MWN/ wurde nicht eingehängt. VPN zum MWN?"
 
  +
geekbox|g) #geekbox einhängen
−
fi
 
  +
if fpruef /media/geekbox; then
−
else
 
  +
sshfs <username>@geekbox.info:/ /media/geekbox
−
echo "Es besteht keine VPN-Verbindung zum MWN. Diese wird jetzt aufgebaut."
 
  +
ftest $modus /media/geekbox
−
sudo vpnc mwn #VPN-Verbindung zum MWN herstellen
 
  +
fi
−
sudo mount -t cifs -o username=<LRZ-Kennung>,domain=ADS //nas.ads.mwn.de/<LRZ-Kennung> /media/MWN/
 
  +
;;
−
if [ "$(df | grep /media/MWN)" ]; then
 
  +
t-online|t) #t-online einhängen
−
echo "/media/MWN/ erfolgreich eingehängt"
 
  +
if fpruef /media/WebDAV; then
  +
sudo mount -t davfs -o username=<username> https://webdav.mediencenter.t-online.de/ /media/WebDAV
  +
ftest $modus /media/WebDAV
  +
fi
  +
;;
  +
MWN|mwn|M|m) #MWN einhängen
  +
if fpruef /media/MWN; then
  +
if [ "$(ps ax | grep vpnc | grep -v grep)" ]; then #Prüfen, ob eine VPN-Verbindung zum MWN besteht
  +
sudo mount -t cifs -o username=<LRZ-Kennung>,domain=ADS //nas.ads.mwn.de/<LRZ-Kennung> /media/MWN
  +
ftest $modus /media/MWN
 
else
 
else
−
echo "/media/MWN/ wurde nicht eingehängt."
 
  +
echo "Es besteht keine VPN-Verbindung zum MWN. Diese wird jetzt aufgebaut."
  +
sudo vpnc <entsprechnde vpnc.conf> #VPN-Verbindung zum MWN herstellen
  +
sudo mount -t cifs -o username=<LRZ-Kennung>,domain=ADS //nas.ads.mwn.de/<LRZ-Kennung> /media/MWN
  +
ftest $modus /media/MWN
 
fi
 
fi
 
fi
 
fi
 
;;
 
;;
−
*) #Fehleingabe abfangen
+
*) #Fehleingabe abfangen
 
echo $platte "steht nicht zur Auswahl!"
 
echo $platte "steht nicht zur Auswahl!"
 
;;
 
;;
Zeile 132: Zeile 137:
   
   
−
funmount() #Funktion: Aushängen
+
function funmount() #Funktion: Aushängen
 
{
 
{
 
case "$platte" in
 
case "$platte" in
−
geekbox|g) #geekbox aushängen
+
geekbox|g) #geekbox aushängen
 
fusermount -u /media/geekbox
 
fusermount -u /media/geekbox
−
if [ "$(df | grep /media/geekbox)" ]; then
+
ftest $modus /media/geekbox
−
echo "/media/geekbox wurde nicht ausgehängt"
 
−
else
 
−
echo "/media/geekbox erfolgreich ausgehängt"
 
−
fi
 
 
;;
 
;;
−
t-online|t) #t-online aushängen
+
t-online|t) #t-online aushängen
 
sudo umount /media/WebDAV
 
sudo umount /media/WebDAV
−
if [ "$(df | grep /media/WebDAV)" ]; then
+
ftest $modus /media/WebDAV
−
echo "/media/WebDAV wurde nicht ausgehängt"
 
−
else
 
−
echo "/media/WebDAV erfolgreich ausgehängt"
 
−
fi
 
 
;;
 
;;
−
MWN|mwn|M|m) #MWN aushängen
+
MWN|mwn|M|m) #MWN aushängen
 
sudo umount /media/MWN
 
sudo umount /media/MWN
−
if [ "$(df | grep /media/MWN/)" ]; then
+
ftest $modus /media/MWN
−
echo "/media/MWN/ wurde nicht ausgehängt"
 
−
else
 
−
echo "/media/MWN/ erfolgreich ausgehängt"
 
−
fi
 
 
;;
 
;;
−
*) #Fehleingabe abfangen
+
*) #Fehleingabe abfangen
 
echo $platte "steht nicht zur Auswahl!"
 
echo $platte "steht nicht zur Auswahl!"
 
;;
 
;;
 
esac
 
esac
−
}
 
−  
−  
−
fhaupt()
 
−
{
 
−
clear #Ausgabe leeren
 
−  
−
fqmodus #Modus abfragen
 
−  
−
if [ "$modus" == "a" ] || [ "$modus" == "A" ]; then #Falls Modus = Anzeigen -> Anzeigen
 
−
fanzeigen
 
−
fi
 
−  
−
fqplatte #Platte abfragen
 
−
if [ "$modus" == "m" ] || [ "$modus" == "M" ]; then #Falls Modus = Einhängen -> Einhängen
 
−
fmount
 
−
elif [ "$modus" == "u" ] || [ "$modus" == "U" ]; then #Falls Modus = Aushängen -> Aushängen
 
−
funmount
 
−
else #Falscheingaben
 
−
echo "Dieser Modus steht nicht zur Auswahl!"
 
−
fi
 
−  
−
fqnochmal #Nochmal von vorne?
 
 
}
 
}
   
Zeile 184: Zeile 166:
 
########################################################################
 
########################################################################
   
−
fhaupt
 
  +
while true; do
  +
clear
  +
fqmodus #Modus abfragen
  +
  +
case "$modus" in
  +
a)
  +
fanzeigen #Anzeigen
  +
;;
  +
m)
  +
fqplatte #Platte abfragen
  +
fmount #Einhängen
  +
;;
  +
u)
  +
fqplatte #Platte abfragen
  +
funmount #Aushängen
  +
;;
  +
*)
  +
echo "Dieser Modus steht nicht zur Auswahl!" #Falscheingaben
  +
;;
  +
esac
  +
  +
if ! fqnochmal; then break; fi #Nochmal von vorne?
  +
done
  +
  +
clear
 
</source>
 
</source>
   

Version vom 17. Februar 2012, 12:57 Uhr

Unicrawler ohne Moodle

#!/bin/sh -e

function_load(){
	cd "${1}" && shift && wget --accept pdf,PDF --execute robots=off --continue --level 1 --no-directories --no-verbose --recursive --timestamping --user-agent "Mozilla/5.001 (windows; U; NT4.0; en-us) Gecko/25250101" "${@}"
}

function_load "${HOME}/Dokumente/Studium/Unterlagen/SS_2011/TDK" \
	--password="*****" \
	"http://dante.phys.chemie.tu-muenchen.de/de/vorlesung/pc1/SS2011/materialienSS2011.html" \


function_load "${HOME}/Dokumente/Studium/Unterlagen/SS_2011/IT II/Vorlesung" \
	--user="VorlesungIT" --password="*****" \
	"http://download.ais.mw.tum.de/IT/index.php?folder=Vm9ybGVzdW5n" \


function_load "${HOME}/Dokumente/Studium/Unterlagen/SS_2011/Bio" \
	--user="Chemiker" --password="******" \
	"ftp://anakin.biotech.ch.tum.de/Chemie/Biologie%20fuer%20Chemiker/" \


function_load "${HOME}/Dokumente/Studium/Unterlagen/SS_2011/HM II/Vorlesung" \
	--user="HM" --password="*****" \
	"http://www.ma.tum.de/HM/MW2SoSe11/Inhalt" \

Onlinefestplatten

#!/bin/bash

########################################################################
#                                                                      #
#                             Funktionen                               #
#                                                                      #
########################################################################

function fqmodus()		#Funktion: Modus abfragen
{
echo "Skript zum Anzeigen, Mounten und Unmounten von Onlinefestplatten"
read -p " Anzeigen (a), Mount (m) oder Unmount (u): " modus
}


function fqplatte()		#Funktion: Platte abfragen
{
echo "Zur Auswahl stehen geekbox, t-online und MWN"
read -p " Gib die gewünschte Platte ein: " platte
}


function fqnochmal()		#Funktion: Abfrage ob nochmal
{
read -p " Fertig? (y/n) " fertig
if [ "$fertig" == "y" ]; then return 1; fi
}


function fanzeigen()		#Funktion: eingehängte Platten anzeigen
{
if [ "$(df -h | grep 'geekbox\|WebDAV\|MWN')" ]; then
	df -h | grep 'geekbox\|WebDAV\|MWN'
else
	echo "Kein Verzeichnis eingehängt"
fi
}


function fpruef()		#Funktion: Prüfen, ob Mountpoint belegt
{
if [ "$(df | grep $1)" ]; then
	echo "Warnung: $1 ist bereits eingehängt"
	read -p " Trotzdem einhängen? (y/n) " trotzdem
	if [ "$trotzdem" == "y" ]; then return 0;	fi
	return 1
fi
return 0
}


function ftest()		#Funktion: Testen, ob wirklich ein/ausgehängt
{
case "$1" in
	m)
		if [ "$(df | grep $2)" ]; then
			echo "$2 erfolgreich eingehängt"
		else
			echo "$2 wurde nicht eingehängt"
		fi
		;;
	u)
		if [ "$(df | grep $2)" ]; then
			echo "$2 wurde nicht ausgehängt"
		else
			echo "$2 erfolgreich ausgehängt"
		fi
		;;
esac
}


function fmount()		#Funktion: Einhängen
{
case "$platte" in
	geekbox|g)					#geekbox einhängen
		if fpruef /media/geekbox; then
			sshfs <username>@geekbox.info:/ /media/geekbox
			ftest $modus /media/geekbox
		fi
		;;
	t-online|t)					#t-online einhängen
		if fpruef /media/WebDAV; then
			sudo mount -t davfs -o username=<username> https://webdav.mediencenter.t-online.de/ /media/WebDAV
			ftest $modus /media/WebDAV
		fi
		;;
	MWN|mwn|M|m)					#MWN einhängen
		if fpruef /media/MWN; then
			if [ "$(ps ax | grep vpnc | grep -v grep)" ]; then	#Prüfen, ob eine VPN-Verbindung zum MWN besteht
				sudo mount -t cifs -o username=<LRZ-Kennung>,domain=ADS //nas.ads.mwn.de/<LRZ-Kennung> /media/MWN
				ftest $modus /media/MWN
			else
				echo "Es besteht keine VPN-Verbindung zum MWN. Diese wird jetzt aufgebaut."
				sudo vpnc <entsprechnde vpnc.conf>		#VPN-Verbindung zum MWN herstellen
				sudo mount -t cifs -o username=<LRZ-Kennung>,domain=ADS //nas.ads.mwn.de/<LRZ-Kennung> /media/MWN
				ftest $modus /media/MWN
			fi
		fi
		;;
	*)						#Fehleingabe abfangen
		echo $platte "steht nicht zur Auswahl!"
		;;
esac
}


function funmount()		#Funktion: Aushängen
{
case "$platte" in
	geekbox|g)					#geekbox aushängen
		fusermount -u /media/geekbox
		ftest $modus /media/geekbox
		;;
	t-online|t)					#t-online aushängen
		sudo umount /media/WebDAV
		ftest $modus /media/WebDAV
		;;
	MWN|mwn|M|m)					#MWN aushängen
		sudo umount /media/MWN
		ftest $modus /media/MWN
		;;
	*)						#Fehleingabe abfangen
		echo $platte "steht nicht zur Auswahl!"
		;;
esac
}



########################################################################
#                                                                      #
#                               Main                                   #
#                                                                      #
########################################################################

while true; do
	clear
	fqmodus					#Modus abfragen

	case "$modus" in 
		a)
			fanzeigen		#Anzeigen
			;;
		m)
			fqplatte		#Platte abfragen
			fmount			#Einhängen
			;;
		u)
			fqplatte		#Platte abfragen
			funmount		#Aushängen
			;;
		*)
			echo "Dieser Modus steht nicht zur Auswahl!"	#Falscheingaben
			;;
	esac

	if ! fqnochmal; then break; fi		#Nochmal von vorne?
done

clear

altes Minecraft-über-Hamachi-Skript

#!/bin/bash

########################################################################
#                                                                      #
#                           Konfiguration                              #
#                                                                      #
########################################################################

#IP des Servers
IP="5.175.47.155"
#DynDns des Servers
DNS="upperclass.dyndns.tv"
#Zeit zwischen den Pings
PAUSE=3
#wie viele Fehler vor reconnect
TOLERANZ=2




########################################################################
#                                                                      #
#                           DynDNS testen                              #
#                                                                      #
########################################################################

if ping -c 1 -w 1 $DNS > /dev/null; then
    DYNDNS=true
  else 
    DYNDNS=false
fi


########################################################################
#                                                                      #
#                           Spiel starten                              #
#                                                                      #
########################################################################

if $DYNDNS; then
    echo "************ DynDNS verwenden:" $DNS "************"
  else
    echo "************ Hamachi verwenden:" $IP "************"
    if ! ping -c 1 -w 1 $IP > /dev/null; then
  
      gksudo tuncfg
      hamachi go-offline oel_di_ei
      hamachi logout
      hamachi stop
      hamachi start
      hamachi login
      hamachi go-online oel_di_ei
      hamachi get-nicks
      #hamachi list
    fi
fi

cd ~/Dokumente/Spiele
java -jar /home/felix/Dokumente/Spiele/minecraft.jar &





########################################################################
#                                                                      #
#                     Verbindungsüberwachung                           #
#                                                                      #
########################################################################

#Script
sleep 10
FEHLER=0
if $DYNDNS; then 
    
    while true; do
      if ! ping -c 1 -w 1 $DNS > /dev/null; then
          FEHLER=$((FEHLER+1))
        else
          FEHLER=0
      fi;
      if [ $FEHLER -eq $TOLERANZ ]; then
        echo "************ DynDNS-Verbindung unterbrochen ************"
	FEHLER=0
      fi
      sleep $PAUSE;
    done

  else

    while true; do
      if ! ping -c 1 -w 1 $IP > /dev/null; then
          FEHLER=$((FEHLER+1))
        else
          FEHLER=0
      fi;
      if [ $FEHLER -eq $TOLERANZ ]; then
    
	echo "************ Hamachi-Verbindung unterbrochen -> reconnecting ************"
        gksudo tuncfg
        hamachi go-offline oel_di_ei
        hamachi logout
        hamachi stop
        hamachi start
        hamachi login
        hamachi go-online oel_di_ei
        hamachi get-nicks
        #hamachi list
    
      fi
      sleep $PAUSE;
    done

fi