Script zum Kopieren eines Contenido-Systems auf ein anderes

Gesperrt
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Script zum Kopieren eines Contenido-Systems auf ein anderes

Beitrag von timo » Mi 7. Jul 2004, 16:49

Das ganze ist ein Shell-Script und berücksichtigt nicht den Abgleich der Daten, sondern kopiert einfach alles von System A nach System B.

Hinweis: Wer sich nicht mit Bash-Scripten auskennt bzw nicht die Fähigkeit besitzt, obiges Script zu debuggen und notfalls auf seine Bedürftnisse anzupassen, der möge dieses Script bitte nicht benutzen.

Ich hafte nicht für eventuelle Datenverluste oder sonstige Schäden am System.

Code: Alles auswählen

#!/bin/bash

password="yourdatabasepassword"
targetsystem="test"
sourcename="LIVE"
targetname="STAGING"
params="-h localhost -u root --password=$password"
rootpath="/home/cms/"
sqlfile="$rootpath/$targetsystem-$date-mysql.sql"
backup="$rootpath/$targetsystem-$date.tar.gz"
sourcedatabase="contenido"
destdatabase="contenido_staging"
staging="staging"
www="www"

echo "WARNING! This will sync $sourcename to $targetname."
echo "This will drop all changes to $targetname system, but"
echo "will create a backup of the $targetname first."
echo
echo -n "Are you sure (n)? "
read sure

if [ "$sure" != "y" ]; then
  echo "Aborted."
  exit
fi

echo
date=`date +%Y%m%d`


echo "Dumping MySQL-Database to $sqlfile"
mysqldump $destdatabase $params > $sqlfile

echo "Creating filesystem archive to $backup"
cd $rootpath
tar cfj $backup $staging

echo "Store old client configuration"
mysqldump $destdatabase $params con_clients > /tmp/clients.sql
echo "Copy database from $sourcename to $targetname"
mysqldump $sourcedatabase $params > /tmp/sync.sql
mysql $params -e "DROP DATABASE $sourcedatabase"
mysql $params -e "CREATE DATABASE $sourcedatabase"

mysql $params $destdatabase < /tmp/sync.sql
echo "Re-Installing saved client configuration"
mysql $params destdatabase -e "DROP TABLE con_clients"
mysql $params destdatabase < /tmp/clients.sql
echo "Cleaning con_code"
mysql $params destdatabase -e "DELETE FROM con_code"
echo "Copy frontend directory to $rootpath$staging/cms"
rm -rf $rootpath$staging/cms
cp -R $rootpath$www/cms/ $rootpath$staging

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 8. Jul 2004, 07:26

elegante lösung wenn man bash verwenden kann...
*** make your own tools (wishlist :: thx)

EineFragehaettichdanoch
Beiträge: 11
Registriert: Sa 3. Sep 2005, 18:59
Kontaktdaten:

src löschen?????

Beitrag von EineFragehaettichdanoch » Fr 16. Sep 2005, 13:13

Hi,

warum

Code: Alles auswählen

mysql $params -e "DROP DATABASE $sourcedatabase"
mysql $params -e "CREATE DATABASE $sourcedatabase"
??
Müsste das nicht die $destdatabase sein???
:?

EineFragehaettichdanoch
Beiträge: 11
Registriert: Sa 3. Sep 2005, 18:59
Kontaktdaten:

nochwas..

Beitrag von EineFragehaettichdanoch » Fr 16. Sep 2005, 14:02

Ist ein Aufruf von updateseqruntime.php hier nicht nötig??? :?

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Fr 16. Sep 2005, 14:13

es kann sein daß das Script fehlerhaft ist - probiere es aus, nachdem du Backups gemacht hast

ein Aufruf von updateseqruntime ist hier nicht nötig, schadet aber nie. Da die Tabelle con_sequence auch kopiert wird uns sich die Anzahl der PrimaryKeys nicht geändert hat, sollte es hier keine Probleme geben.

EineFragehaettichdanoch
Beiträge: 11
Registriert: Sa 3. Sep 2005, 18:59
Kontaktdaten:

Beitrag von EineFragehaettichdanoch » Fr 16. Sep 2005, 15:47

hi,
danke für die schnelle Antwort.
Ja bin das Script ja eh am modifizieren.. habs nur nicht verstanden, warum die gelöscht werden soll..

EineFragehaettichdanoch
Beiträge: 11
Registriert: Sa 3. Sep 2005, 18:59
Kontaktdaten:

..funzt

Beitrag von EineFragehaettichdanoch » Fr 16. Sep 2005, 17:24

OK funktioniert jetzt. :D
:arrow: Ich möchte allerdings nochmals wie timo darauf hinweisen, dass jeder, der sich nicht mit shell-scripts und mysql auskennt und in der Lage ist, sich sowas quasi auch selbst zu schreiben, die Finger davon lassen sollte!
Das gepostete Script ist nunmal nur ein sehr abstraktes Beispiel, das ggf. noch den ein oder anderen Fehler hat. - Also anschauen, merken und selbst nochmal neu schreiben! - Das geht natürlich nicht gegen Dich, timo - will nur verhindern, dass sich irgendjemand leichtsinnigerweise irgendwas löscht..
:wink:
Nochmal danke, dass du es gepostet hast!

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Fr 16. Sep 2005, 19:36

Ja es war auch eher als Beispiel gedacht ;)

Gesperrt