Zitat von
Buckshot
... würde ich gerne den Befehl dafür kennen
So einfach wie die Vorschläge von MacKP ist die Sache aber nicht. Man kann nicht einfach daherkommen und irgendwo auf der Konsole Befehle einhacken. Man muß nämlich wissen in welchem Verzeichnis man das macht und wo das Quell- bzw. Zielverzeichnis liegt. Und da bei den meisten Servern ein *nix-System läuft, muß man auch noch den Fallstrick mit ./ beachten. Es kann nämlich vorkommen, das man sich im Verzeichnis webseiten befindet und möchte dort das Unterverzeichnis testseite ansprechen.
Code:
tar -czvf dateiname.tar.gz testseite
kann da durchaus auf Englisch mit "Verzeichnis nicht gefunden" beantwortet werden, obwohl das unter Windows klappen würde. Aber wir sind ja unter *.nix, deshalb mal probieren:
Code:
tar -czvf dateiname.tar.gz ./testseite
Zum anderen kann es vorkommen, das das angeforderte Programm nicht gefunden wird. Das mag bei tar i.d.R. nicht der Fall sein, kann aber bei anderen Programmen so sein. Oftmals steht auch kein Programm dahinter, sondern nur eine Batchdatei oder wie auf *nix ein Alias. So ist php ein Alias für den Aufruf der php.exe. Bei Domainfactory ruft man z.B. mit php die php.exe von PHP 4.4.9 auf. Hier muß dann erst das Alias umgeroutet werden auf php.exe der 5er oder 7er PHP-Version.
Alles in allem kann das ziemlich komplex werden. Als ehemaliger Anhänger der DOS-Kommandozeile oder besser Kommandozeile + Norton- bzw. Nordhoff-Commander bin ich der *nix-Konsole nicht abgeneigt. Sie erleichtert viele Arbeiten, aber mit dem Midnight Commander (mc auf der Konsole) bin ich oft schneller, weil ich entweder gerade die Konsolenbefehle nicht im Kopf habe oder die Tipperei länger dauert.
Zum Abschluß noch von mir ein paar Konsolenbefehle abgespeichert als Shellskript im Root des Webservers:
dirsize.sh:
Code:
#!/bin/bash
# Größen aller Verzeichnisse rekursiv ermitteln: du -h
# nur bestimmtes Verzeichnis rekursiv ermitteln: du -h ./webseiten
# Ergebnis nach Größe absteigend sortieren: sort -h -r
# und auf die ersten 100 Ergebnisse beschränken: head -n 100
du -h | sort -h -r | head -n 1000 > dirsize.txt
Dieses Skript errechnet die Verzeichnisgrößen aller Verzeichnisse und Unterverzeichnisse und listet die 1000 größten Verzeichnisse nach Größe sortiert in der Datei dirsize.txt auf.
backup_web.sh:
Code:
#!/bin/bash
# Speicherpfad und Datum
backup_path="/kunden/xyz/backup/web"
date=$(date +"%Y%m%d_%H%M")
# Zum Speicherpfad wechseln
cd $backup_path
# Standard-Dateieigenschaften setzen
umask 640
# Webspace rekursiv sichern
zip -r contao_templates_$date.zip /kunden/xyz/webseiten/testseite/templates/
zip -r contao_system_modules_$date.zip /kunden/xyz/webseiten/testseite/system/modules/
zip -r contao_system_config_$date.zip /kunden/xyz/webseiten/testseite/system/config/
zip -r public_$date.zip /kunden/xyz/webseiten/testseite/web/Public/
Damit sichere ich bestimmte Verzeichnisse samt Unterverzeichnisse in einer ZIP-Datei in einem Backupverzeichnis. Die ZIP-Datei hat die aktuelle Uhrzeit (+ Datum) im Dateinamen.
Last but not least ein Bashskript zur Sicherung der Datenbanken. Wichtig hierbei: Die Sicherung muß unbedingt im UTF8-Format erfolgen.
backup_mysql.sh:
Code:
#!/bin/bash
# Speicherpfad und Datum
backup_path="/kunden/xyz/backup/mysql"
date=$(date +"%Y%m%d_%H%M")
# Zum Speicherpfad wechseln
cd $backup_path
# Standard-Dateieigenschaften setzen
umask 640
# Datenbanken definieren
dbname[0]="db_1"; dbpass[0]="xyz"; dbinfo[0]="Datenbank 1"; dbhost[0]="localhost"
dbname[1]="db_2"; dbpass[1]="xyz"; dbinfo[1]="Datenbank 2"; dbhost[1]="localhost"
dbname[2]="db_3"; dbpass[2]="xyz"; dbinfo[2]="Datenbank 3"; dbhost[2]="localhost"
dbname[3]="db_4"; dbpass[3]="xyz"; dbinfo[3]="Datenbank 4"; dbhost[3]="localhost"
dbname[4]="db_5"; dbpass[4]="xyz"; dbinfo[4]="Datenbank 5"; dbhost[4]="localhost"
# Datenbanken sichern
for i in {0..4}
do
mysqldump --user=${dbname[$i]} --password=${dbpass[$i]} --host=${dbhost[$i]} --default-character-set=utf8 ${dbname[$i]} > ${dbname[$i]}_$date.sql
zip ${dbname[$i]}_$date.zip ${dbname[$i]}_$date.sql
rm ${dbname[$i]}_$date.sql
done
Alle Skripte führe ich bei Domainfactory als Cronjob einmal täglich aus.
Lesezeichen