SyncScriptserver

Aus alt.comp.hsr
Wechseln zu: Navigation, Suche

Hier ein Skript zur Synchronisation des Skriptservers auf den PC

Folgende Variablen können angepasst werden:

$DESTDIR zeigt wohin die Skripte kopiert werden (Der Ordner muss von Hand erstellt werden)
$SOURCEDIR zeigt woher die Skripte kopiert werden (Der Skriptserver muss in diesen Ordner gemountet werden)
In $LOGFILE steht was kopiert wurde
$SYNC_COMANND ist das zur Synchronisation benutzte Kommando
$WGET_SOURCEDIR ist der Server mit dem von wget synchronisiert werden soll
$WGET_SYNC_COMMAND ist das Kommando mit dem synchronisiert werden soll

Zur Synchronisation jedes Faches existiert je 1 Zeile die für die Fächer angepasst werden muss.

echo	|tee $LOGFILE erstellt eine neue Zeile zur besseren Lesbarkeit.

Der Zielordner für die Skripte wird schreibgeschützt, da falls dort etwas geändert würde, dies durch rsync bei der nächsten Synchronisation wieder rückgängig gemacht würde.

Fügt doch bitte eure Ordner die ihr synchronisiert in auskommentierter Form an, damit es die Nächsten einfacher haben. Sollte das mounten des Skriptservers nicht funktionieren, kann auch mit wget von skripte.hsr.ch synchronisiert werden.

#!/bin/bash

DESTDIR=~/Documents/hsr/skripte/
SOURCEDIR="/media/hsr/skripte/"
LOGFILE=$DESTDIR/copy.log
SYNC_COMMAND="rsync -av --delete"
WGET_SOURCEDIR="http://skripte.hsr.ch/"
WGET_SYNC_COMMAND="wget -nv -P $DESTDIR -np -nH --cut-dirs=3 -r -c"

function sync_wget()
{
	echo $1 |tee $LOGFILE
	$WGET_SYNC_COMMAND $WGET_SOURCEDIR/$2 |tee $LOGFILE
	echo |tee $LOGFILE
}

function sync()
{
	echo $1 |tee $LOGFILE
	$SYNC_COMMAND $SOURCEDIR/$2 $DESTDIR/$1 |tee $LOGFILE
	echo |tee $LOGFILE
}

# exit if chmod fails, either $DESTDIR doesn't exist or user hasn't sufficent rights to access it
chmod -R u+w $DESTDIR || exit 1

echo	|tee $LOGFILE
echo "-----------------------------------------------------------------------------------------------------------------------------" |tee $LOGFILE
echo "Sync: $(date)" |tee $LOGFILE
echo "-----------------------------------------------------------------------------------------------------------------------------" |tee $LOGFILE
echo	|tee $LOGFILE


# Hier wurde auch der gesamte Webserver www.medialab.ch synchronisiert, da sich die Skripten dort befinden.
# Dies sollte aber nicht zu oft durchgeführt werden, da der Webserver stark ausgelastet wird und der Administrator
# mir beim 10. mal synchronisieren (zu Testzwecken) mir ein Mail geschrieben hat, ob ich eine Attacke auf seinen Server vor habe. ;)
#WGET_SOURCEDIR=http://www.medialab.ch
#sync_wget DigSig1
#sync_wget DigSig1 ds/
#sync_wget DigSig1 dm/
#sync_wget DigSig1 fe/
#sync_wget DigSig1 archiv/
#sync_wget DigSig1 labor/
#sync_wget DigSig1 images/

## Elektrotechnik Semester 2
#sync "DigT2"    "Elektrotechnik/Fachbereich/Digitaltechnik_2/DigT2/"
#sync "An2E"     "Mathematik_Naturwissenschaften/Analysis_2_fuer_Elektrotechnik/An2E/"
#sync "OOProg"   "Elektrotechnik/Fachbereich/OO-Programmierkonzepte/OOProg/"

## Elektrotechnik Semester 4
#sync "CompT2" "Elektrotechnik/Fachbereich/Computertechnik_2/CompT2/"
#sync "ElMasch" "Elektrotechnik/Fachbereich/Elektrische_Maschinen/ElMasch/"
#sync "ELT4" "Elektrotechnik/Fachbereich/Elektrotechnik_4/ELT4/"
#sync "Elo2" "Elektrotechnik/Fachbereich/Elektronik_2/Elo2/"
#sync "NaT2" "Elektrotechnik/Fachbereich/Nachrichtentechnik_2/NaT2/"
#sync "PMSwEng" "Elektrotechnik/Fachbereich/Projektmanagement_und_Software_Engineering/PMSwEng/"
#sync "RegT2E" "Elektrotechnik/Fachbereich/Regelungstechnik_2/RegT2E/"
#sync "SigSys2" "Elektrotechnik/Fachbereich/Signale_und_Systeme_2/SigSys2/"

#sync "FuVar" "Mathematik_Naturwissenschaften/Funktionen_mehrerer_Variablen/FuVar/"
#sync "NAP" "Mathematik_Naturwissenschaften/Naturwissenschaftliches_Praktikum/NAP/"


## Elektrotechnik Unsortiert
#sync "CompT1" "Elektrotechnik/Fachbereich/Computertechnik_1/CompT1/"
#sync "DigMed1" "Elektrotechnik/Fachbereich/Digitale_Medien_1/DigMed1/"
#sync "DigMed2" "Elektrotechnik/Fachbereich/Digitale_Medien_2/DigMed2/"
#sync "DigSig1" "Elektrotechnik/Fachbereich/Digitale_Signalverarbeitung_1/DigSig1/"
#sync "DigSig2" "Elektrotechnik/Fachbereich/Digitale_Signalverarbeitung_2/DigSig2/"
#sync "DigT1" "Elektrotechnik/Fachbereich/Digitaltechnik_1/DigT1/"
#sync "DAE" "Elektrotechnik/Fachbereich/Diplomarbeit_Elektrotechnik/DAE/"
#sync "ELT1" "Elektrotechnik/Fachbereich/Elektrotechnik_1/ELT1/"
#sync "ELT2" "Elektrotechnik/Fachbereich/Elektrotechnik_2/ELT2/"
#sync "ELT3" "Elektrotechnik/Fachbereich/Elektrotechnik_3/ELT3/"
#sync "Elo1" "Elektrotechnik/Fachbereich/Elektronik_1/Elo1/"
#sync "EP1" "Elektrotechnik/Fachbereich/Elektro-Praktikum_1/EP1/"
#sync "EP2" "Elektrotechnik/Fachbereich/Elektro-Praktikum_2/EP2/"
#sync "EmbSys1" "Elektrotechnik/Fachbereich/Embedded_Systems_1/EmbSys1/"
#sync "EmbSys2" "Elektrotechnik/Fachbereich/Embedded_Systems_2/EmbSys2/"
#sync "EnSys" "Elektrotechnik/Fachbereich/Energiesysteme/EnSys/"
#sync "JavaC" "Elektrotechnik/Fachbereich/Java_fuer_C++_Programmierer/JavaC/"
#sync "LeistEl" "Elektrotechnik/Fachbereich/Leistungselektronik/LeistEl/"
#sync "Mikroel3" "Elektrotechnik/Fachbereich/Mikroelektronik_3/Mikroel3/"
#sync "Mikroel4" "Elektrotechnik/Fachbereich/Mikroelektronik_4/Mikroel4/"
#sync "Mobkom1" "Elektrotechnik/Fachbereich/Mobilkommunikation_1/Mobkom1/"
#sync "MobKom2" "Elektrotechnik/Fachbereich/Mobilkommunikation_2/MobKom2/"
#sync "NaT1" "Elektrotechnik/Fachbereich/Nachrichtentechnik_1/NaT1/"
#sync "OOAD" "Elektrotechnik/Fachbereich/OO-Analyse_und_-Design/OOAD/"
#sync "OOProg" "Elektrotechnik/Fachbereich/OO-Programmierkonzepte/OOProg/"
#sync "ProgGru" "Elektrotechnik/Fachbereich/Programmieren_Grundlage_E_und_M/ProgGru/"
#sync "RegT1E" "Elektrotechnik/Fachbereich/Regelungstechnik_1/RegT1E/"
#sync "RegT3E" "Elektrotechnik/Fachbereich/Regelungstechnik_3/RegT3E/"
#sync "RegT4E" "Elektrotechnik/Fachbereich/Regelungstechnik_4/RegT4E/"
#sync "SigSys1" "Elektrotechnik/Fachbereich/Signale_und_Systeme_1/SigSys1/"
#sync "WS_DST" "Elektrotechnik/Fachbereich/Wechsel-_und_Drehstromtechnik/WS_DST/"

## Mathematik Naturwissenschafen
#sync "An1B" "Mathematik_Naturwissenschaften/Analysis_1_fuer_Bauingenieurwesen/An1B/"
#sync "An1E" "Mathematik_Naturwissenschaften/Analysis_1_fuer_Elektrotechnik/An1E/"
#sync "An1I" "Mathematik_Naturwissenschaften/Analysis_1_fuer_Informatiker/An1I/"
#sync "An1M" "Mathematik_Naturwissenschaften/Analysis_1_fuer_Maschinentechnik/An1M/"
#sync "An2B" "Mathematik_Naturwissenschaften/Analysis_2_fuer_Bauingenieurwesen/An2B/"
#sync "An2E" "Mathematik_Naturwissenschaften/Analysis_2_fuer_Elektrotechnik/An2E/"
#sync "An2I" "Mathematik_Naturwissenschaften/Analysis_2_fuer_Informatiker/An2I/"
#sync "An3B" "Mathematik_Naturwissenschaften/Analysis_3_fuer_Bauingenieurwesen/An3B/"
#sync "Chem1" "Mathematik_Naturwissenschaften/Chemie_1/Chem1/"
#sync "FouLap2EC" "Mathematik_Naturwissenschaften/Fourier-_und_Laplacetransformation_2_ECTS-Punkte/FouLap2EC/"
#sync "FuVar2EC" "Mathematik_Naturwissenschaften/Funktionen_mehrerer_Variablen_2_ECTS-Punkte/FuVar2EC/"
#sync "FuVar" "Mathematik_Naturwissenschaften/Funktionen_mehrerer_Variablen/FuVar/"
#sync "IntTra" "Mathematik_Naturwissenschaften/Integraltransformationen/IntTra/"
#sync "KomFour" "Mathematik_Naturwissenschaften/Komplexe_Zahlen_und_Fourierreihen/KomFour/"
#sync "KoSchu" "Mathematik_Naturwissenschaften/Korrosion_und_Korrosionsschutz/KoSchu/"
#sync "LinAlg2EC" "Mathematik_Naturwissenschaften/Lineare_Algebra_2_ECTS-Punkte/LinAlg2EC/"
#sync "LinAlg" "Mathematik_Naturwissenschaften/Lineare_Algebra_Einfuehrung/LinAlg/"
#sync "MatAuf" "Mathematik_Naturwissenschaften/Materialwissenschaften/MatAuf/"
#sync "Math1I" "Mathematik_Naturwissenschaften/Mathematische_Grundlagen_der_Informatik_1/Math1I/"
#sync "Math2I" "Mathematik_Naturwissenschaften/Mathematische_Grundlagen_der_Informatik_2/Math2I/"
#sync "Math2M" "Mathematik_Naturwissenschaften/Mathematik_fuer_Maschinentechnik_2/Math2M/"
#sync "Math3M" "Mathematik_Naturwissenschaften/Mathematik_fuer_Maschinentechnik_3/Math3M/"
#sync "Math4M" "Mathematik_Naturwissenschaften/Mathematik_fuer_Maschinentechnik_4/Math4M/"
#sync "MathSem" "Mathematik_Naturwissenschaften/Mathematisches_Seminar/MathSem/"
#sync "Mek1" "Mathematik_Naturwissenschaften/Mathematischer_Ergaenzungskurs_1/Mek1/"
#sync "Mek2" "Mathematik_Naturwissenschaften/Mathematischer_Ergaenzungskurs_2/Mek2/"
#sync "NAP" "Mathematik_Naturwissenschaften/Naturwissenschaftliches_Praktikum/NAP/"
#sync "Ph1Mech" "Mathematik_Naturwissenschaften/Physik_1/Ph1Mech/"
#sync "Ph2HAT" "Mathematik_Naturwissenschaften/Physik_2/Ph2HAT/"
#sync "Ph3SWO" "Mathematik_Naturwissenschaften/Physik_3/Ph3SWO/"
#sync "Ph4_I" "Mathematik_Naturwissenschaften/Physik_4_fuer_Informatiker/Ph4_I/"
#sync "PhysTech" "Mathematik_Naturwissenschaften/Materialwissenschaften/PhysTech/"
#sync "VekBM" "Mathematik_Naturwissenschaften/Vektorgeometrie_fuer_Bauingenieurwesen_und_Maschinentechnik/VekBM/"
#sync "WrStat" "Mathematik_Naturwissenschaften/Wahrscheinlichkeitsrechnung_und_Statistik/WrStat/"

## Kommunikation_Wirtschaft_Recht
#sync "BPMan1" "Kommunikation_Wirtschaft_Recht/Bauplanungs-Management/BPMan1/"
#sync "BuPl" "Kommunikation_Wirtschaft_Recht/Business_und_Recht_1/BuPl/"
#sync "BuPlL" "Kommunikation_Wirtschaft_Recht/Business_Plan_1_fuer_Landschaftsarchitektur/BuPlL/"
#sync "Chin1" "Kommunikation_Wirtschaft_Recht/Chinesisch_1/Chin1/"
#sync "Chin2" "Kommunikation_Wirtschaft_Recht/Chinesisch_2/Chin2/"
#sync "Dokumentvorlagen" "Kommunikation_Wirtschaft_Recht/Werkzeugkasten Technische Berichte/Dokumentvorlagen/"
#sync "English1" "Kommunikation_Wirtschaft_Recht/English_Level_1/English1/"
#sync "English2" "Kommunikation_Wirtschaft_Recht/English_Level_2/English2/"
#sync "English3" "Kommunikation_Wirtschaft_Recht/English_Level_3/English3/"
#sync "English4" "Kommunikation_Wirtschaft_Recht/English_Level_4/English4/"
#sync "Franz1" "Kommunikation_Wirtschaft_Recht/Franzoesisch_1_Anfaenger/Franz1/"
#sync "Franz2" "Kommunikation_Wirtschaft_Recht/Franzoesisch_2_Fortgeschrittene/Franz2/"
#sync "Ital1" "Kommunikation_Wirtschaft_Recht/Italienisch_1/Ital1/"
#sync "Ital2" "Kommunikation_Wirtschaft_Recht/Italienisch_2/Ital2/"
#sync "Jap1" "Kommunikation_Wirtschaft_Recht/Japanisch_1/Jap1/"
#sync "Jap2" "Kommunikation_Wirtschaft_Recht/Japanisch_2/Jap2/"
#sync "KgsArch" "Kommunikation_Wirtschaft_Recht/Kulturgeschichte_Architektur-_und_Stadtbaugeschichte/KgsArch/"
#sync "Kgs" "Kommunikation_Wirtschaft_Recht/Recht_1_und_Kulturgeschichte/Kgs/"
#sync "KomIng1" "Kommunikation_Wirtschaft_Recht/Kommunikation_1_fuer_IngenieurInnen/KomIng1/"
#sync "KomIng2" "Kommunikation_Wirtschaft_Recht/Kommunikation_2_fuer_IngenieurInnen/KomIng2/"
#sync "KomPla1" "Kommunikation_Wirtschaft_Recht/Kommunikation_1_fuer_PlanerInnen/KomPla1/"
#sync "KomPla2" "Kommunikation_Wirtschaft_Recht/Kommunikation_2_fuer_PlanerInnen/KomPla2/"
#sync "ManagSim" "Kommunikation_Wirtschaft_Recht/Business_und_Recht_2/ManagSim/"
#sync "Mod" "Kommunikation_Wirtschaft_Recht/Oeffentlichkeitsarbeit_und_Moderation/Mod/"
#sync "OeArb" "Kommunikation_Wirtschaft_Recht/Oeffentlichkeitsarbeit_und_Moderation/OeArb/"
#sync "PlgRe" "Kommunikation_Wirtschaft_Recht/Recht_4/PlgRe/"
#sync "RegioPol" "Kommunikation_Wirtschaft_Recht/Regionalentwicklung_und_Standortpolitik/RegioPol/"
#sync "ReIng" "Kommunikation_Wirtschaft_Recht/Business_und_Recht_1/ReIng/"
#sync "RePlaner" "Kommunikation_Wirtschaft_Recht/Recht_1_und_Kulturgeschichte/RePlaner/"
#sync "ReVertr" "Kommunikation_Wirtschaft_Recht/Business_und_Recht_2/ReVertr/"
#sync "Span1" "Kommunikation_Wirtschaft_Recht/Spanisch_1/Span1/"
#sync "Span2" "Kommunikation_Wirtschaft_Recht/Spanisch_2/Span2/"
#sync "TeGesch" "Kommunikation_Wirtschaft_Recht/Volkswirtschaft_und_Technikgeschichte/TeGesch/"
#sync "UPB1" "Kommunikation_Wirtschaft_Recht/Recht_2/UPB1/"
#sync "VwlWp" "Kommunikation_Wirtschaft_Recht/Volkswirtschaft_und_Technikgeschichte/VwlWp/"
#sync "Webseite" "Kommunikation_Wirtschaft_Recht/Werkzeugkasten Technische Berichte/Webseite/"
#sync "WiFi" "Kommunikation_Wirtschaft_Recht/Wirtschaft_und_oeffentliche_Finanzen/WiFi/"

chmod -R u-w $DESTDIR