#!/bin/bash # Confixxmigrationscript # (c) IP-Exchange.de # written by Igor Kov && Milan Berger # contributions by Jens Heisterkamp, Thomas Tischner # Markus Fischer and Magic Google. # Version v0.0.4 # Changelog # 0.0.1 Initial Release # 0.0.2 Steps werden geecho'ed # 0.0.3 Erste "read" Steps eingebaut, bugfixing, # alle DB PWs aus bestehenden Files auslesen # 0.0.4 "read" enhanced mit Abbruch Funktion function die() { echo "$@" exit 1 } echo "Dienste stoppen" /etc/init.d/apache2 stop /etc/init.d/postfix stop /etc/init.d/mysql stop /etc/init.d/courier-imap stop /etc/init.d/courier-imap-ssl stop /etc/init.d/courier-pop stop /etc/init.d/courier-pop-ssl stop echo "Dienste gestoppt" echo "Wurden Dienste sauber gestoppt?" read -p "Fortfahren (j/n)?" [ "$REPLY" == "j" ] || die "Confixxmigration abgebrochen, 2nd Level informieren!" echo "Verschiebe Counterscript" mv /etc/cron.d/counterscript /var/tmp echo "Verschiebe WEBs und Mail" cd /root/oldsystem/var/www mv web* /var/www/ cd /root/oldsystem/home/ mv web* /home/ mv /root/oldsystem/etc/apache2/ssl.* /etc/apache2/ echo "Verschiebe Webalizer" cd /root/oldsystem/var/www/confixx/html/webalizer/ mv web* /var/www/confixx/html/webalizer/ echo "Verschiebe mySQL DBs" cd /root/oldsystem/var/lib/mysql/ mkdir /root/oldsystem/backup mv /var/lib/mysql/mysql/ /var/lib/mysql/confixx/ /root/oldsystem/backup/ mv usr_web* mysql* confixx* /var/lib/mysql/ chown mysql:mysql -R /var/lib/mysql/ /etc/init.d/mysql start echo "Daten kopiert" read -p "Fortfahren (j/n)?" [ "$REPLY" == "j" ] || die "Confixxmigration abgebrochen, 2nd Level informieren!" echo "Setze Passwort fuer debian-sys-maint" mysql -p$(awk '/mysqlUserPw/ { print $3 }' /root/oldsystem/opt/confixx/confixx_main.conf| sed -e "s|;||;s|'||g") mysql -e "update user set password='$(grep password /etc/mysql/debian.cnf | sort -u | awk '{ print $3 }')' where user='debian-sys-maint';" egrep "dbPw|mysqlUserPw|min_uid|user_prefix|ServerID" /root/oldsystem/opt/confixx/confixx_main.conf | while read a; do ALT=`echo $a | cut -d " " -f1 `; sed -i "s|$ALT.*|$a|1" /opt/confixx/confixx_main.conf; done echo "Passwoerter und Confixx angepasst" echo "Confixx Upgrade starten" read -p "Fortfahren (j/n)?" [ "$REPLY" == "j" ] || die "Confixxmigration abgebrochen, 2nd Level informieren!" cd /opt/confixx/ mv admin /root/oldsystem/backup/ wget http://ftp.ip-exchange.de/pub/swsoft/Confixx/ConfixxPro3.3/3.3.9/current_confixx_pro_update.tgz tar xzf current_confixx_pro_update.tgz ./admin/updates/update_3.x.pl<<<0 echo "Confixx Upgrade fertig" echo "magic admin.pl geficke..." read -p "Fortfahren (j/n)?" [ "$REPLY" == "j" ] || die "Confixxmigration abgebrochen, 2nd Level informieren!" mysql confixx -uroot -p$(awk '/mysqlUserPw/ { print $3 }' /opt/confixx/confixx_main.conf| sed -e "s|;||;s|'||g") -e "UPDATE admin set httpd_options='1', idn='1', shareddomains='1';" sed -i 's|$idn_shell.*|$idn_shell = '\'/usr/local/bin/idnconv\'';|' /opt/confixx/confixx_main.conf sed -i 's|$idn_vendor.*|$idn_vendor = '\'idnkit\'';|' /opt/confixx/confixx_main.conf sed -i 's|$iconv_shell.*|$iconv_shell = '\'/usr/bin/iconv\'';|' /opt/confixx/confixx_main.conf /opt/confixx/admin/subs/scripts_install.pl /opt/confixx/admin/subs/webPages_install.pl /opt/confixx/confixx_counterscript.pl --force-all --debug echo "Pass Permissions fuer Web und Mail an" read -p "Fortfahren (j/n)?" [ "$REPLY" == "j" ] || die "Confixxmigration abgebrochen, 2nd Level informieren!" cd /var/www for((i=0;i<500;i++));do chown web$i:www-data web$i; chown -R web$i:www-data web$i/html 2>/dev/null; done cd /home for DIR in $(find -maxdepth 1 -type d -name web\* | cut -c "3 4 5 6 7" ); do chown -R $DIR\:poponly $DIR; done echo "Spamassassin und Counterscript..." read -p "Fortfahren (j/n)?" [ "$REPLY" == "j" ] || die "Confixxmigration abgebrochen, 2nd Level informieren!" mkdir /home/spamd/.spamassassin chown -R spamd:spamd /home/spamd mv /var/tmp/counterscript /etc/cron.d/ echo "Fertig, Server nun rebooten (JA/NEIN)" echo "halt" echo 'Broadcast message from root (pts/0)' echo " " echo 'The system is going down for reboot NOW!' sleep 10 echo 'VERARSCHT!'