Hallo,
ich habe mir (m)ein (erstes) Shell Skript gebaut mit dessen Hilfe ich meine Dev-Typo3-Installation einmal pro Woche automatisch per Cronjob durch die Prod überspielen möchte.
Wenn ich dieses nun aber ausführe hagelt es (noch in meiner Dev-VMWare) Fehler ohne Ende
"FOR command not found"
"DONE command not found"
...
Leider kann ich nicht alle rauskopieren, weil die Meldung zu lange für mein VMWare-Fenster ist O aber vielleicht seht ihr auch, wo genau der Fehler liegt.
Ich verwende als OS Debian (Lenny). Hier das Skript:
Ich habe das Skript in Windows geschrieben und dachte erst, dass es an den Zeilenumbrüchen,... liegt und habe diese dann aber entfernt.
Dem Skript gebe ich CHMOD 777 und führe es dann über sh my_skript.sh aus.
Vielen Dank und viele Grüße,
Dirk
ich habe mir (m)ein (erstes) Shell Skript gebaut mit dessen Hilfe ich meine Dev-Typo3-Installation einmal pro Woche automatisch per Cronjob durch die Prod überspielen möchte.
Wenn ich dieses nun aber ausführe hagelt es (noch in meiner Dev-VMWare) Fehler ohne Ende
"FOR command not found"
"DONE command not found"
...
Leider kann ich nicht alle rauskopieren, weil die Meldung zu lange für mein VMWare-Fenster ist O aber vielleicht seht ihr auch, wo genau der Fehler liegt.
Ich verwende als OS Debian (Lenny). Hier das Skript:
Code:
#!/bin/sh
# Zugangsdaten und Name der DB von
# der der Dump erstellt wird
mysqlDumpUser="username"
mysqlDumpPw="pw"
mysqlDumpHost="localhost"
mysqlDumpDB="TYPO3_PROD_DB"
# Zugangsdaten und Name der DB die
# in die der Dump eingespielt wird
mysqlUser="username"
mysqlPw="pw"
mysqlHost="localhost"
mysqlDB="TYPO3_DEV_DB"
# Temporäre Dump-Datei
tmpDumpDir="/tmp"
tmpDumpFile="typo3dump.sql"
# Typo3-Ordner-Struktur der zu kopierenden Ordner
typo3ProdPath="/var/www/prod"
typo3DevPath="/var/www/dev"
typo3Folders=(uploads fileadmin typo3conf)
# Dump erstellen
mysqldump -u $mysqDumplUser -h $mysqlDumpHost -p$mysqlDumpPw $mysqlDumpDB > $tmpDumpDir/$tmpDumpFile
IF [ -f $tmpDumpDir/$tmpDumpFile ] THEN
# Dev-Datenbank komplett löschen
mysql -u $mysqlUser -h $mysqlHost -p$mysqlPw "DROP DATABASE IF EXISTS " . $mysqlDB
# Dev-Datenbank neu anlegen
mysql -u $mysqlUser -h $mysqlHost -p$mysqlPw "CREATE DATABASE IF NOT EXISTS " . $mysqlDB
# Dump einspielen
mysql -u $mysqlUser -h $mysqlHost -p$mysqlPw $mysqlDB < $tmpDumpDir/$tmpDumpFile
# Über zu kopierende Ordner iterieren
FOR folder IN $typo3Folders DO
IF [ -d $typo3ProdPath/$folder && -d $typo3DevPath/$folder ] THEN
# Den Ordner in der Dev-Umgebung löschen
rm -rf $typo3DevPath/$folder
# Den Ordner aus der Prod-Umgebung kopieren
cp $typo3ProdPath/$folder $typo3DevPath/.
ELSE
echo $folder . ' existiert nicht (zum Kopieren oder Löschen)'
FI
DONE
FI
Ich habe das Skript in Windows geschrieben und dachte erst, dass es an den Zeilenumbrüchen,... liegt und habe diese dann aber entfernt.
Dem Skript gebe ich CHMOD 777 und führe es dann über sh my_skript.sh aus.
Vielen Dank und viele Grüße,
Dirk