Acest script realizeaza update-ul unei versiuni Nighly build la o noua versiune.
Acest script este un mic “hack” pentru automatizarea procesului. Ca precautie studiati intai timeline-ul inainte de al utiliza.
Modificarile fisierului ispcp.conf nu sunt incluse in acest script, acestea trebuind executate manual
Lansati scriptul ca user-ul root din directorul “trunk”.
Un backup al versiunii curente a IPSPCDIR este creata in directorul BACKUPDIR (valoarile prestabilite este sunt specificate in script).
Acest script este in stadiu BETA, motiv pentru care asigurativa ca aveti copii de siguranta inainte de al testa.
#!/bin/sh # # ispcp-nightly-update # Version: 0.0.1 # License: GPL # Author : ispcomm # Credits: ispcp development team # # Variables BACKUPDIR="/var/www/backup" WWWDIR="/var/www" ISPCPDIR="${WWWDIR}/ispcp/" REBUILD_SITES="yes" # Salvare instalare curenta mkdir -p ${BACKUPDIR} pushd ${BACKUPDIR} tar czpf "ispcp_backup-`date +'%Y-%m-%d %H-%M-%S'`.tar.gz" ../ispcp/ cp ../ispcp/engine/ispcp-db-keys.pl . cp ../ispcp/gui/include/ispcp-db-keys.php . cp ../ispcp/gui/tools/pma/config.inc.php . popd # Compilam ispcp. Fisierele vor fi copiate in directorul /tmp/ispcp make clean install # Update /etc/init.d/ispcp_daemon stop pushd /tmp/ispcp${WWWDIR} cp -R ispcp/ ${WWWDIR} find ${ISPCPDIR} -type d -name '.svn' -exec rm -fr '{}' \; cd ${BACKUPDIR} cp ispcp-db-keys.pl ../ispcp/engine/ cp ispcp-db-keys.pl ../ispcp/engine/messager/ cp ispcp-db-keys.php ../ispcp/gui/include/ cp config.inc.php ../ispcp/gui/tools/pma/ cd ../ispcp/engine/setup/ ./set-engine-permissions.sh ./set-gui-permissions.sh if [ $REBUILD_SITES == "yes" ] ; then # Unele versiuni anterioare necesita aceasta linie. Nu este necesara pentru versiunile curente. #DELETE FROM config WHERE name = 'DATABASE_REVISION'; cat <<EOF | mysql -uroot -p ispcp UPDATE mail_users SET status='toadd' where status='ok'; UPDATE domain SET domain_status = 'change' WHERE domain_status = 'ok'; UPDATE domain_aliasses SET alias_status = 'change' WHERE alias_status = 'ok'; UPDATE subdomain SET subdomain_status = 'change' WHERE subdomain_status = 'ok'; EOF ${ISPCPDIR}/engine/ispcp-rqst-mngr fi /etc/init.d/ispcp_daemon start rm -fR /tmp/ispcp popd
De asemenea daca sunteti foarte lenesi puteti folosi aceasta versiune modificata. Aceasta descarca versiunea curenta si updateaza atat fisirele script cat si fisierele template din /etc/ispcp (din directoarele “parts”). Nu este modificat fiserul /etc/ispcp/ispcp.conf. Atentie, uneori versiunile 'nightly' sunt defecte. Intotdeauna verificati timeline-ul.
#!/bin/sh # # ispcp-nightly-update # Version: 0.0.1 # License: GPL # Author : ispcomm # Credits: ispcp development team # # Variables BACKUPDIR="/var/www/backup" WWWDIR="/var/www" ISPCPDIR="${WWWDIR}/ispcp/" REBUILD_SITES="yes" TRUNK_DIR="/usr/src/ispcp" #download/update trunk (thanks kilburn) mkdir -p ${TRUNK_DIR} svn checkout http://www.isp-control.net/ispcp_svn/trunk/ ${TRUNK_DIR} cd ${TRUNK_DIR} # Salvam versiunea curenta mkdir -p ${BACKUPDIR} pushd ${BACKUPDIR} tar czpf "ispcp_backup-`date +'%Y-%m-%d %H-%M-%S'`.tar.gz" ${WWWDIR}/ispcp/ tar czpf "ispcp_backup-etc-`date +'%Y-%m-%d %H-%M-%S'`.tar.gz" /etc/ispcp/ cp -v ${WWWDIR}/ispcp/engine/ispcp-db-keys.pl . cp -v ${WWWDIR}/ispcp/gui/include/ispcp-db-keys.php . cp -v ${WWWDIR}/ispcp/gui/tools/pma/config.inc.php . popd # Compilam. Fisierele sunt salvate in /tmp/ispcp make clean install # Facem update /etc/init.d/ispcp_daemon stop pushd /tmp/ispcp${WWWDIR} cp -vR ispcp/ ${WWWDIR} find ${ISPCPDIR} -type d -name '.svn' -exec rm -fr '{}' \; popd pushd ${BACKUPDIR} cp -v ispcp-db-keys.pl ${WWWDIR}/ispcp/engine/ cp -v ispcp-db-keys.pl ${WWWDIR}/ispcp/engine/messager/ cp -v ispcp-db-keys.php ${WWWDIR}/ispcp/gui/include/ cp -v config.inc.php ${WWWDIR}/ispcp/gui/tools/pma/ popd pushd ${WWWDIR}/ispcp/engine/setup/ ./set-engine-permissions.sh ./set-gui-permissions.sh popd # Copiem fisierele sablon (../parts). Aici e nevoie de cineva care sa stie bash mai bine de mine. #pentru alta versiune decat debian modificati. find /tmp/ispcp/etc/ispcp -type d -name '.svn' -exec rm -fr '{}' \; bla=`find /tmp/ispcp/etc/ispcp -type d -name 'parts' | awk -F"/" '{print "/"$2"/"$3"/"$4"/"$5"/"$6"/"$7}'`; for x in $bla do bla2=`echo ${x} | awk -F"/" '{print "/"$4"/"$5"/"$6}'` cp -vR $x $bla2 done if [ $REBUILD_SITES == "yes" ] ; then # Unele versiuni anterioare necesita aceasta linie. Nu este necesara pentru versiunile curente. #DELETE FROM config WHERE name = 'DATABASE_REVISION'; #read -p "Introduce-ti parola pentru mysql" cat <<EOF | mysql -uroot -pYOURPASSWORD ispcp UPDATE mail_users SET status='toadd' where status='ok'; UPDATE domain SET domain_status = 'change' WHERE domain_status = 'ok'; UPDATE domain_aliasses SET alias_status = 'change' WHERE alias_status = 'ok'; UPDATE subdomain SET subdomain_status = 'change' WHERE subdomain_status = 'ok'; EOF ${ISPCPDIR}/engine/ispcp-rqst-mngr fi /etc/init.d/ispcp_daemon start rm -fRv /tmp/ispcp /etc/init.d/apache2 restart /etc/init.d/bind9 restart