Contenido Update per SSH

Gesperrt
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Contenido Update per SSH

Beitrag von _wiewo_ »

Hallo Community,

dieser Thread richtet sich an alle die, welche einen V oder ROOT Server betreiben und es etwas mühselig finden die aktuellsten ConteidoDaten per FTP hochzuladen, wenn man denn doch schon einen netten Shell Zugang hat.

Nun habe ich mich mal hingesetzt und 3 kleine Dateien geschrieben welche den Updatevorgang erheblich beschleunigen (installation wäre hiermit auch möglich).
Zu diesen 3 Dateien welche ich unten als Code eingebunden habe ist das Programm Plink (http://the.earth.li/~sgtatham/putty/lat ... /plink.exe) essentiell.

contenido_updaten.bat

Code: Alles auswählen

set plink_dir="C:\Users\webtischler\downloads"

@echo off
echo ###########################################################################
echo ###
echo ### Herzlich Willkommen beim automatischen Contenido Update
echo ###
echo ### Sobald Sie eine Taste druecken wird die aktuelle Contenido
echo ### Version 4.8.12 heruntergeladen, entpackt und in die gewuenschte Domain
echo ### kopiert.
echo ###
echo ### Nach diesem Vorgang muessen Sie den Updatevorgang auf der Browser-
echo ### ebene fortfuehren.
echo ###
echo ### Nachdem dieser Vorgang abgeschlossen ist muessen Sie hier nochmals
echo ### eine Taste druecken damit das Setup-Verzeichnis wieder entfernt wird.
echo ###
echo ###########################################################################
echo.
echo.
pause;
echo.
echo.
%plink_dir%\plink -ssh -l root -pw PASSWORD -m contenido_updaten_1.txt
echo.
echo.
echo ###########################################################################
echo ###
echo ### Nun bitte das Update auf Browserebene fortfuehren    
echo ###
echo ### Nach Abschluss hier wieder eine beliebige Taste druecken
echo ###
echo ###########################################################################
echo.
echo.
pause;
echo.
echo.
%plink_dir%\plink -ssh -l root -pw PASSWORD -m contenido_updaten_2.txt
echo.
echo.
echo ###########################################################################
echo ###
echo ### Der Update Vorgang wurde erfolgreich beendet!
echo ###
echo ### Sie koennen Contenido nun wie gewohnt nutzen
echo ###
echo ###########################################################################
pause;
exit;
Was muss ich in dieser Datei machen?
In dieser Datei muss man den Pfad anpassen, wo Plink im Dateisystem liegt. set plink_dir="C:\Users\webtischler\downloads"
und in die 2 Zeilen %plink_dir%\plink -ssh -l root -pw PASSWORD -m contenido_updaten_n.txt muss man sein Passwort eintragen

Das wars schonmal was in der .bat geändert werden muss.



Kommen wir zu unseren 2 .txt Dateien

contenido_updaten_1.txt

Code: Alles auswählen

export PFAD_FILES=/opt/contenido/;
export PFAD_WEBSEITE=/var/www/vhosts/electrolovers.de/httpdocs/;


export VERSIONa=4_8_12;
export VERSIONb=4.8.12;


cd $PFAD_FILES;
wget http://www.contenido.org/de/redir/Contenido_$VERSIONa;
unzip -l Contenido_$VERSIONb.zip;
rm Contenido_$VERSIONb.zip;
cd $PFAD_FILES;
cp -r ./ $PFAD_WEBSEITE;
find $PFAD_WEBSEITE -type f -exec chmod 777 {} \;;
find $PFAD_WEBSEITE -type d -exec chmod 777 {} \;;
Was muss ich in dieser Datei machen?
Hier müssen 4 Variablen angepasst werden
export PFAD_FILES=/opt/contenido/;
Hier wird angegeben wo auf dem Server die aktuellen ContenidoDaten hingepackt werden sollen
Ich habe dazu in /opt/ einen Ordner Contenido angelegt, in welchem dann immer eine aktuelle ContendidoVersion liegt
export PFAD_WEBSEITE=/var/www/vhosts/electrolovers.de/httpdocs/;
Hier müsst ihr angeben wo das aktuelle Contenido hinkopiert werden soll, dieses Beispiel ist ein vServer mit Plesk wo Contenido im httpdocs ordner der in Plesk eingerichteten Domain liegt
export VERSIONa=4_8_12;
export VERSIONb=4.8.12;
Bei diesen 2 Variablen handelt es sich um die ContenidoVersion, ziemlich selbsterklärend

Kommen wir zu unserer 2. .txt Datei


contenido_updaten_2.txt

Code: Alles auswählen

export PFAD_WEBSEITE=/var/www/vhosts/electrolovers.de/httpdocs/;

rm $PFAD_WEBSEITE/setup/ -R;
find ./ -type f -exec chmod 777 {} \;;
find ./ -type d -exec chmod 777 {} \;
Was muss ich in dieser Datei machen?
Hier muss wieder nur der Pfad angepasst werden wo die Contenidoinstallation auf der Domain liegt



Nun einfach die .bat ausführen und dabei zugucken was er da schönes treibt und den Anweisungen auf dem Schirm folgeleisten =)




Was wo in der Datei passiert werde ich im laufe des Tages Schritt für Schritt dokumentieren.

Wer sich wundert warum ich bei %plink_dir%\plink -ssh -l root -pw PASSWORD -m contenido_updaten_n.txt keine ip oder soetwas stehen habe, dem kann ich sagen das es daran liegt das ich Putty auch laufen habe, und er sich daraus aus einer ich glaube in der registry abgelegten Konfiguration den Server zieht.

Hatte man Putty noch nicht laufen muss die Zeile von %plink_dir%\plink -ssh -l root -pw PASSWORD -m contenido_updaten_n.txt in %plink_dir%\-ssh root@HOSTNAME -pw PASSWORD -m contenido_updaten_n.txt geändert werden

Wichtig ist das man sich als Root auf dem Server einloggt!

Mit freundlichen Grüßen
Christian Kehres
Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Re: Contenido Update per SSH

Beitrag von Dinkel »

Hi Christian,

danke, dass Du Dein Skript hier postest. Hier ein paar Anmerkungen:

1.
Mach das Mit der Version doch einfach so:

Code: Alles auswählen

export VERSIONa=4_8_12;
export VERSIONb=`echo $VERSIONa|sed "s/_/./g"`
So sparst Du Dir eine doppelte Anpassung (wobei ich es besser fände, wenn auch die Versionsnummer eine Variable an plink sein würde).

2.
Das ist "suboptimal":

Code: Alles auswählen

find $PFAD_WEBSEITE -type f -exec chmod 777 {} \;;
find $PFAD_WEBSEITE -type d -exec chmod 777 {} \;;
Du willst nicht überall 777 gesetzt haben.

3.
Prüfe die Pfade, bevor Du dort hin wechselst. Wenn es einen Pfad nicht gibt, dann spuckt die shell nen Fehler und macht dann fröhlich weiter.
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Re: Contenido Update per SSH

Beitrag von _wiewo_ »

danke für die anmerkungen
werd das alles in die todo liste setzen

das war das so was ich mit meinen linux kentnissen zusammenbekommen hab

wird aufjedenfall nochmal nen update geben

auch was den cms ordner bei dem update angeht und so

10%% optimal isses nicht, aber für ne installation zb schon bestens geeignet

und den 777 werd ich nu auch nach und nach anpassen was wirklich wo hin muss
rbi
Beiträge: 95
Registriert: Do 27. Sep 2007, 21:33
Kontaktdaten:

Re: Contenido Update per SSH

Beitrag von rbi »

Ich bin der Meinung, dass das nicht wirklich gut ist:
Angenommen, es werden Dateien aus Contenido entfernt, entfernt man diese in diesem Prozess nicht, weil nur cp -r stattfindet. Ggfs. bleiben so alte Dateien auf dem System, die man dort nicht mehr haben will/soll.
Von daher würde ich bei einem händischen Update bleiben.
hey, ich bin nicht mehr rot!
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: Contenido Update per SSH

Beitrag von OliverL »

Ich habe bemerkt das Dateien nicht gelöscht werden sondern geleert.
(Irgendwo war mal sowas wie /tools/*.*)

mfg OliverL

Aber ich gebe rbi recht es sollte sicherlich eine Prüfung für gelöschte Daten rein.
Kann ja jeder ergänzen da wiewo ja schon eingeräumt hat das "... was ich mit meinen linux kentnissen zusammenbekommen hab"
Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Re: Contenido Update per SSH

Beitrag von Dinkel »

rbi hat geschrieben:Ich bin der Meinung, dass das nicht wirklich gut ist:
Angenommen, es werden Dateien aus Contenido entfernt, entfernt man diese in diesem Prozess nicht, weil nur cp -r stattfindet. Ggfs. bleiben so alte Dateien auf dem System, die man dort nicht mehr haben will/soll.
Von daher würde ich bei einem händischen Update bleiben.
Das kann man ja leicht umgehen, indem man bei einem Upgrade die Verzeichnisse "contenido", "pear", "conlib" erst löscht und dann neu hin kopiert. Voraussetzung dafür ist aber, dass dann auch der korrekte Besitzer und Gruppe eingestellt wird...
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: Contenido Update per SSH

Beitrag von OliverL »

genau und mit dem Contenido auch die Config-Datei!
-> keine gute Idee :)

mfg OliverL
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Contenido Update per SSH

Beitrag von Oldperl »

Tja und wer den Ordner contenido löscht, vernichtet dann auch gleich alle installierten Plugins, zumindest im Dateisystem. Beim Aufruf des Backend kommt dann schon Freude auf. :wink: 8)

Ich denke die Idee an sich ist nicht schlecht, gehört aber nochmal grundsätzlich überdacht und eigentlich an das Vorgehen bei einem händischen Update angepasst. Dort macht man ja auch erst mal ein Backup von allem, so das ich hier vorschlagen würde, erst mal ein Backup (bzw.eine Kopie) der Dateien und der MySQL-DB zu machen unter Nutzung der Daten der config.inc.php.

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Gesperrt