Willkommen zum Linux Seminar bei alfatraining 2016

ein gutes Gebüsch

Erste Woche

Wer auf den Zehenspitzen steht, steht nicht sicher
Lao Dse (irgendwas um 550 v.u.Z.)

Einführungs Präsentation(PDF)

Dokumente zur ersten Woche


Zweite Woche

It is not good to settle into a set of opinions. It is a mistake to put forth effort and obtain some understanding and then stop at that.
Yamamoto Tsunetomo: Hagakure (ca. 1780)


Dritte Woche

Each man must create his own system or else he is a slave to another mans.
William Blake (ca. 1810)

Webseiten für den Transport verpacken per Skript

#!/bin/bash
#Skript zum Backup einer Softwareinstalltion in apache
#Wordpressinstallation inkl. Datenbank

#BASIS
#################
#1.)welche Dateien wo:
# DocumentRoot/wp-content
# /etc/apache2/sites-enabeled/NAME

#2.)welche DB:
# DocumentRoot/wp-config.php

#UMSETZUNG
#################

#Protokoll anlegen

datum=$(date);

zeitstempel=$(date +%s);

echo "####Protokoll des WP-Backups vom ${datum} ######

 ">/home/linkurs1014/backups/protokoll_${zeitstempel};


#3.)NAME ermitteln
# Lesen von der Kommandozeile ($1) oder lesen mit read

if [ -z $1 ]
   then
    echo "Erstes Optionsfeld ist leer, kein Name angegeben.
    ">>/home/linkurs1014/backups/protokoll_${zeitstempel};
    echo "Bitte den Namen der zu sichernden Installation eingeben ";
    read name;
	else
	name=$1;
        echo "Name der zu sichernden Installation: ${name} 

">>/home/linkurs1014/backups/protokoll_${zeitstempel};
fi

#4.) NAME benutzen, um die Datei unter sites-enabeled zu finden(prüfen, ob die Datei da ist)

if [ -e /etc/apache2/sites-enabled/${name}.conf  ]
   then
# Neuen Ordner für das ganze Backup anlegen(unter dem angegebenen Namen)
mkdir -p /home/linkurs1014/backups/${name}_${zeitstempel};
cp /etc/apache2/sites-enabled/${name}.conf /home/linkurs1014/backups/${name}_${zeitstempel}/;
    else
echo "Die Datei ist unter dem eingetippten Namen ${name} leider nicht zu finden.">>/home/linkurs1014/backups/protokoll_${zeitstempel};
exit;
fi

#5.) in der Datei die Zeile DocumentRoot finden und den Pfad herausschneiden

#erst mal:

installpfad=$(grep DocumentRoot /etc/apache2/sites-enabled/${name}.conf|sed s/DocumentRoot//|sed 's/\t//g');

#Haben wir, was wir brauchen?

#echo "DEBUG: ${installpfad}";


#Testen, ob wp direkt im DocumentRoot oder  in einem Unterverzeichnis installiert ist 
if [ -f ${installpfad}/wp-config.php  ]
 then
 echo "wp-config gefunden.">>/home/linkurs1014/backups/protokoll_${zeitstempel} ;
  elif [ -f ${installpfad}/wordpress/wp-config.php  ]
  then
  echo "wp-config ist im Unterverzeichnis wordpress installiert.">>/home/linkurs1014/backups/protokoll_${zeitstempel} ;
  installpfad="${installpfad}/wordpress";
 else
 echo "Ich kann wp-config nicht finden. Das ist schade.\n Ich muss jetzt gehen... ">>/home/linkurs1014/backups/protokoll_${zeitstempel};
	exit;
fi

#6.) im Pfad wp-config.php finden und die Zeilen DB_USER DB_PASSWORD und DB_NAME extrahieren eventuell $table_prefix berücksichtigen

#und dann wp-config kopieren

cp ${installpfad}/wp-config.php /home/linkurs1014/backups/${name}_${zeitstempel};

#Oder erst mal:

dbname=$(grep DB_NAME ${installpfad}/wp-config.php |sed s/\'//g| sed s/define\(DB_NAME\,//|sed s/\)\;//|sed s/\ //g);

#DB-Name richtig?
#echo "DEBUG: ${dbname}";

dbusername="wp_db1";
dbpasswort="awaHg-1";

#7.) Mit diesen Daten den Mysqldump herstellen und in den Backupordner schreiben

mysqldump -u ${dbusername} -p${dbpasswort}  ${dbname} > /home/linkurs1014/backups/${name}_${zeitstempel}/${dbname}.sql;


#8.) Alle Dateien in einen Ordner kopieren

cp -R ${installpfad}/wp-content /home/linkurs1014/backups/${name}_${zeitstempel};

#9.) Ordner packen mit tar
cd /home/linkurs1014/backups/;

tar -cjf /home/linkurs1014/backups/${name}_${zeitstempel}.tar.bz2  ${name}_${zeitstempel};

#Ende Gelände



Vierte Woche

That was a great time, the summer of '71 - I can't remember it, but I'll never forget it.
Lemmy Kilmister zur Woche der Wiederholungen

Diese Woche werden wir zur Wiederholung und Vervollständigung des Stoffs der ersten 3 Wochen verwenden.

Außerdem werden wir in einem praktischen Projekt und einem Wissenstest herausfinden, wie weit wir gekommen sind

Und was noch fehlte:

Und hier ist es: