====== Nightly Updatescript ====== Questo script è per seguire lo sviluppo. é stato creato per le persone, che sanno quello che fanno! Non c'è nessun tipo di supporto per questo script. L'uso è a vostro rischio e pericolo! Lo script è un hack per automatizzare il processo. ** Assicurarsi di leggere la sequenza temporale prima di usarla !!!** ** Cambiamenti nel ispcp.conf NON sono inclusi nello script. Dovete farli a mano .** Lancio come "root" dalla directory. "trunk" Una copia di backup di IPSPCDIR attuale verrà creata in BACKUPDIR (valori di default sono nello script). E' in fase di beta. Assicurarsi di avere il backup prima di provarlo. ===== Automated Version ===== Inoltre, se siete super pigro, è possibile utilizzare questa versione modificata (grazie sci2tech). Farà un checkout per voi della cartella svn e anche l'aggiornamento "parts" e "etc". State attenti molte volte la versione night ha qualche problema, vi consigliarmo di controllare sempre la timeline. Ricordati di cambiare user e password mysql. E' necessario avere subversion installato sul sistema i.e on Debian use: apt-get install subversion-tools #!/bin/bash # # ispcp-nightly-update # Version: 0.0.7 - 07.09.2009 # License: GPL # Author : ispcomm # Credits: ispcp development team # # Variables BACKUPDIR="/var/www/backup" TRUNK_DIR="/usr/src/ispcp" REBUILD_SITES="yes" SAVE_DEFAULT_BACKUP="yes" DISTRO_UPD="yes" echo "#### Starting Update ispCP to latest Trunk ####" function msg_exit(){ echo $1;exit; } function Extract_vars(){ eval `cat ${TRUNK_DIR}/${MAKEFILE} | grep -E "(INST_PREF|SYSTEM_CONF)="| sed -e 's/$(INST_PREF)//g'` for a in `cat ${SYSTEM_CONF}/ispcp.conf | grep -E "(CONF_DIR|GUI_ROOT_DIR|ROOT_DIR|BACKUP_FILE_DIR|CMD_HTTPD|CMD_NAMED|CMD_MTA|CMD_ISPCPD|CMD_PFLOGSUM)"| sed -e 's/ //g'` do export $a done WWWDIR=`echo ${ROOT_DIR} | awk -F "/ispcp" '{print $1}'` } #download/update trunk no longer remove old trunk (thanks kilburn) echo "#### DOWNLOAD TRUNK ####" mkdir -p ${TRUNK_DIR} svn checkout http://www.isp-control.net/ispcp_svn/trunk/ ${TRUNK_DIR} cd ${TRUNK_DIR} echo "#### SO determining ####" if [ `lsb_release -i -s | tr -d "\n"` == "Ubuntu" ]; then RELEASE=`lsb_release -c -s | tr -d "\n"` case ${RELEASE} in "jaunty") ;; "intrepid") ;; "hardy") ;; "gutsy") ;; "feisty") ;; "edgy") ;; * ) msg_exit "${RELEASE} is not suported";; esac MAKEFILE="Makefile.ubuntu" Extract_vars if [ $DISTRO_UPD == "yes" ] ; then if [ -e ./docs/Ubuntu/ubuntu-packages-${RELEASE} ]; then echo "#### SO UPDATE ####" apt-get update; apt-get -y dist-upgrade; apt-get -y install `cat ./docs/Ubuntu/ubuntu-packages-${RELEASE}`; fi fi; elif [ -e /etc/debian_version ]; then RELEASE=`lsb_release -c -s | tr -d "\n"` case ${RELEASE} in "sarge") ;; "etch") ;; "lenny") ;; "squeeze") ;; * ) msg_exit "${RELEASE} is not suported";; esac MAKEFILE="Makefile" Extract_vars if [ $DISTRO_UPD == "yes" ] ; then if [ -e ./docs/Debian/debian-packages-${RELEASE} ]; then echo "#### SO UPDATE ####" apt-get update; apt-get -y dist-upgrade; apt-get -y install `cat ./docs/Debian/debian-packages-${RELEASE}`; fi fi; elif [ -e /etc/fedora-release ]; then MAKEFILE="Makefile.fedora" Extract_vars if [ $DISTRO_UPD == "yes" ] ; then msg_exit "Fedora is not suported yet" yum -y install `cat ./docs/Fedora/fedora-packages` cpan2rpm -i http://search.cpan.org/CPAN/authors/id/P/PH/PHOENIX/Term-ReadPassword-0.07.tar.gz wget -P /tmp/core http://hany.sk/mirror/fedora/releases/7/Everything/i386/os/Fedora/perl-Net-LibIDN-0.09-3.fc7.i386.rpm rpm -i /tmp/core/perl-Net-LibIDN-0.09-3.fc7.i386.rpm rm -f /tmp/core/perl-Net-LibIDN-0.09-3.fc7.i386.rpm fi; elif [ -e /etc/SuSE-release ]; then MAKEFILE="Makefile.opensuse" Extract_vars if [ $DISTRO_UPD == "yes" ] ; then yast -i `cat ./docs/OpenSuse/opensuse103-packages` fi; elif [ -e /etc/gentoo-release ]; then MAKEFILE="Makefile.gentoo" Extract_vars if [ $DISTRO_UPD == "yes" ] ; then emerge -uq `cat ./docs/Gentoo/gentoo-packages` fi; elif [ -e /etc/redhat-release ]; then msg_exit "RedHat is not suported yet" elif [ -e /etc/slackware-version ]; then msg_exit "Slackware is not suported yet" else msg_exit "Unknown Linux ditribution: not suported" fi echo "#### BACKUP OLD FILES ####" mkdir -p $BACKUPDIR pushd $BACKUPDIR if [ $SAVE_DEFAULT_BACKUP == "yes" ] ; then mv -f $BACKUP_FILE_DIR . fi 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" ${SYSTEM_CONF} echo "#### SAVING SETTINGS ####" 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 echo "#### BUILDING ISPCP ####" make -f ${MAKEFILE} clean make -f ${MAKEFILE} install echo "#### STOPING ISPCP DAEMON ####" $CMD_ISPCPD stop echo "#### SAVEING CUSTOM STAFF ####" cp -TvR ${GUI_ROOT_DIR}/domain_default_page ${INST_PREF}${GUI_ROOT_DIR}/domain_default_page cp -v ${GUI_ROOT_DIR}/themes/user_logos/* ${INST_PREF}${GUI_ROOT_DIR}/themes/user_logos/ cp -TvR ${GUI_ROOT_DIR}/errordocs ${INST_PREF}${GUI_ROOT_DIR}/errordocs echo "#### REMOVE OLD ISPCP ####" rm -fR $ROOT_DIR echo "#### REMOVE .svn DIRECTORIES ####" rm -fR `find ${INST_PREF} -type d -name '.svn'` echo "#### UPDATE CURENT INSTALLATION ####" pushd ${INST_PREF}${WWWDIR} rm -fR `find ispcp/ -type d -name '.svn'` cp -R ispcp/ $WWWDIR cp -v ${INST_PREF}${CMD_PFLOGSUM} ${CMD_PFLOGSUM} popd echo "#### RESTORE SETTINGS ####" pushd $BACKUPDIR cp -v ispcp-db-keys.pl ${WWWDIR}/ispcp/engine/ cp -v ispcp-db-keys.pl ${WWWDIR}/ispcp/engine/messenger/ cp -v ispcp-db-keys.php ${WWWDIR}/ispcp/gui/include/ cp -v config.inc.php ${WWWDIR}/ispcp/gui/tools/pma/ echo "#### RESTORE BACKUPS ####" if [ $SAVE_DEFAULT_BACKUP == "yes" ] ; then mv -f backups ${BACKUP_FILE_DIR} fi popd echo "#### SETTING PERMISIONS ####" pushd ${WWWDIR}/ispcp/engine/setup/ ./set-engine-permissions.sh ./set-gui-permissions.sh popd echo "#### COPYING /parts DIRECTORIES ####" bla=`find ${INST_PREF}/etc/ispcp -type d -name 'parts'`; for x in $bla; do bla2=`echo ${x} | awk -F"${INST_PREF}|/parts" '{print $2}'` cp -R $x $bla2 done cp ${INST_PREF}${CONF_DIR}/apache/httpd.conf ${CONF_DIR}/apache/httpd.conf cp ${INST_PREF}${CONF_DIR}/apache/working/ispcp.conf ${CONF_DIR}/apache/working/ispcp.conf echo "#### REBUILDING SITES ####" if [ $REBUILD_SITES == "yes" ] ; then cat < \\ ===== Changelog ====== 25.05.08 - Added Printouts \\ 03.06.08 - Added support for Fedora, SuSE and Gentoo \\ 18.08.08 - Added rebuild for apache ispcp.conf. Save customizations (domain_default_page and user logo). \\ 13.12.08 - Save customizations also (errordocs) \\ 07.01.09 - Fixed some Typo's \\ 22.01.09 - Fixed Lenny apt-get list \\ 02.05.09 - Update to Debian 5.0.1 \\ 03.05.09 - Update site rebuilding \\ 03.08.09 - Added support for Ubuntu \\ 12.08.09 - Changed messager to messenger \\ 20.08.09 - Simplify lsb_release usage \\ 07.09.09 - Add FTPd restart