Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Get usernames old+new and change passwd,shadow,groups
- dir=/root/migration
- mkdir /usr/local/cwp/.conf/
- touch /usr/local/cwp/.conf/mysql_user_prefix.conf
- for lUSER in `awk '{print $1}' /root/migration/userlist`; do
- for SHORT in `grep $lUSER /root/migration/userlist | awk '{print $2}'`; do
- #SHORT=`grep $USER /root/migration/userlist | awk '{print $2}'`
- PREFIX=`mysql --skip-column-names -e "SELECT user FROM mysql.user WHERE user LIKE '${SHORT}_%'" | sort| uniq `
- if [ ! -z "$PREFIX" ] && [ ! "$lUSER" == "$SHORT" ] ; then echo "$lUSER:$SHORT" >> /usr/local/cwp/.conf/mysql_user_prefix.conf; fi
- done
- done
- echo "Import users data from SQL files"
- VERSION=`mysql -V |awk '{print $5}' |sed "s/-[[:alpha:]].*$//"`
- if [ -z "`mysql -V |grep -i mariadb`" ]; then # There is MySQL server
- if [[ "$VERSION" > "5.6.9" ]]; then
- NEW=1
- else
- NEW=0
- fi
- else # There is MariaDB server 10.4
- if [[ "$VERSION" > "10.4" ]]; then
- NEW=1
- else
- NEW=0
- fi
- fi
- if [ $NEW = "1" ]; then
- if [ -z "`grep mysqld /etc/my.cnf`" ];
- then
- sed -i '1 a [mysqld]' /etc/my.cnf
- sed -i '/\[mysqld\]/ a sql_mode="ALLOW_INVALID_DATES,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"' /etc/my.cnf
- else
- sed -i '/\[mysqld\]/ a sql_mode="ALLOW_INVALID_DATES,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"' /etc/my.cnf
- fi
- systemctl restart mysqld mariadb
- fi
- mysql -D root_cwp -e "ALTER TABLE user ALTER setup_date SET default '1970-01-01 00:00:00'" ; echo -n "."
- mysql -D root_cwp -e "ALTER TABLE user ALTER last_access SET default '1970-01-01 00:00:00'" ; echo -n "."
- mysql -D root_cwp -e "ALTER TABLE subdomains ALTER setup_time SET default '1970-01-01 00:00:00'" ; echo -n "."
- mysql -D root_cwp -e "ALTER TABLE subdomains MODIFY user varchar(40)" ; echo -n "."
- mysql -D root_cwp -e "ALTER TABLE packages MODIFY reseller varchar(40) NULL" ; echo -n "."
- mysql -D root_cwp -e "ALTER TABLE packages MODIFY accounts varchar(40) NULL" ; echo -n "."
- mysql -D postfix -e "ALTER TABLE domain MODIFY transport varchar(255) NULL" ; echo -n "."
- mysql -D root_cwp < $dir/packages.sql
- for PACK in `cat $dir/packages` ; do
- PACK="`echo $PACK | sed 's/=/ /g'`"
- ID=`mysql --skip-column-names -D root_cwp -e "SELECT id FROM packages WHERE package_name='$PACK'"`
- if [[ "$ID" == "" ]]; then echo "CHECK MIGRATED PACKAGES! EXIT"; exit 1; fi
- sed -i "s/, '$PACK', /, '$ID', /g" $dir/users.sql
- echo -n "."
- done
- echo "MySQL Import domains $dir/domains.sql"
- mysql -D root_cwp < $dir/domains.sql
- echo "MySQL Import domains $dir/users.sql"
- mysql -D root_cwp < $dir/users.sql
- echo "MySQL Import domains $dir/email_accounts.sql"
- mysql -D postfix < $dir/email_accounts.sql
- echo "MySQL Import domains $dir/mail_autoresponders.sql"
- mysql -D postfix < $dir/mail_autoresponders.sql
- echo "MySQL Import domains $dir/mail_forwarders.sql"
- mysql -D postfix < $dir/mail_forwarders.sql
- echo "MySQL Import domains $dir/resellers_double_plans.sql"
- mysql -D root_cwp < $dir/resellers_double_plans.sql
- echo
- echo "Done"
- echo "Import emails" ; echo
- for i in `cat $dir/vmail`; do
- if [ -d $i ]; then
- echo -n "." ; /bin/mv $i /var/vmail
- fi
- chown -R vmail:mail /var/vmail
- done
- echo "Done."
- echo "Converting Cronjobs"
- for i in `cd /var/spool/cron/ ; ls`; do
- if [ -e "/var/spool/cron/$i" ];then
- sed -i '/^SHELL.*$/d' /var/spool/cron/$i ; echo -n "."
- fi
- done
- echo
- echo "Done"
- echo "Fix accounts, webserver configs... Wait."
- sh /scripts/update_cwp
- chmod +x /scripts/cwp_api
- for USER in `cut -d' ' -f1 $dir/userlist `; do
- /scripts/cwp_api account fix_perms $USER
- done
- cp $dir/ssl/certs/* /etc/pki/tls/certs/
- cp $dir/ssl/private/* /etc/pki/tls/private/
- while read line; do
- echo -n ".";
- /scripts/cwp_api webservers add_ssl $line
- done < $dir/had_ssl
- echo
- echo "Importing FTP accounts"
- while read line; do
- virtualuser=`echo $line| awk -F: {'print $1'}`
- password=`echo $line| awk -F: {'print $2'}`
- uid=`echo $line| awk -F: {'print $3'}`
- gid=`echo $line| awk -F: {'print $4'}`
- username=`echo $line| awk -F: {'print $5'}`
- path=`echo $line| awk -F: {'print $6'}`
- if [ ! -z "$virtualuser" ];then
- echo "$virtualuser:$password:$uid:$gid::$path::::::::::::" >> /etc/pure-ftpd/pureftpd.passwd
- fi
- done < $dir/ftp.importlist
- /usr/bin/pure-pw mkdb /etc/pure-ftpd/pureftpd.pdb -f /etc/pure-ftpd/pureftpd.passwd -m
- echo
- echo "Done."
- sh /scripts/cwpsrv_rebuild_user_conf
- /scripts/cwp_api webservers rebuild_all
- echo
- echo "Done"
- #Fix named crash
- sed -i "s/inet\ any\ allow/\/\/inet\ any\ allow/" /etc/named.conf
- service named restart
- # Add cPanel AddHandler names
- sh /scripts/cpanel_addhandlers
- # Download and install all php selector versions from 5.3 - 7.3
- if [ ! -z "$1" ];then
- if [ "$1" == "php" ];then
- #PHP Selector
- echo
- echo "Starting PHP Selector Fast Install"
- cd /
- wget dl1.centos-webpanel.com/files/php/full/el7/selector/php-selector.zip
- unzip php-selector.zip
- rm -f php-selector.zip
- wget http://dl1.centos-webpanel.com/files/php/selector/el7/php-dependencies.sh -O /usr/local/src/php-dependencies.sh
- sh /usr/local/src/php-dependencies.sh
- yum -y install ImageMagick ImageMagick-devel ImageMagick-perl icu icu-devel libmcrypt libmcrypt-devel
- rpm -e --nodeps libzip libzip-devel
- yum -y install cmake cmake3 zlib-devel --enablerepo=epel
- cd /usr/local/src
- wget http://libzip.org/download/libzip-1.5.1.tar.gz
- tar zxvf libzip*
- cd libzip*
- mkdir build
- cd build
- /usr/bin/cmake3 ..
- make && make install
- rm -Rf /usr/local/src/libzip*
- if [ ! -e "/usr/local/ioncube/" ];then
- sh /scripts/update_ioncube
- # ioncube installer
- if [ -e "/usr/local/php/php.d/ioncube.ini" ]; then
- echo 'zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.3.so' > /opt/alt/php73/usr/php/php.d/ioncube.ini
- fi
- fi
- fi
- fi
- # Install hostname SSL
- if [[ -f /root/migration/ssl/private/hostname.pem ]]; then
- openssl x509 -in /root/migration/ssl/private/hostname.pem > /etc/pki/tls/certs/hostname.bundle
- awk '/----BEGIN CERTIFICATE----/ { flag = 1; ++ctr } flag && ctr >= 2 { print } /-----END CERTIFICATE-----/ { flag = 0 }' /root/migration/ssl/private/hostname.pem >> /etc/pki/tls/certs/hostname.bundle
- openssl rsa -in /root/migration/ssl/private/hostname.pem > /etc/pki/tls/private/hostname.key
- # Postfix
- sed -i 's#smtpd_tls_cert_file.*$#smtpd_tls_cert_file = /etc/pki/tls/certs/hostname.bundle#g' /etc/postfix/main.cf
- sed -i 's#smtp_tls_CAfile.*$#smtp_tls_CAfile = /etc/pki/tls/certs/hostname.bundle#g' /etc/postfix/main.cf
- sed -i 's#smtpd_tls_CAfile.*$#smtpd_tls_CAfile = /etc/pki/tls/certs/hostname.bundle#g' /etc/postfix/main.cf
- sed -i 's#smtpd_tls_key_file.*$#smtpd_tls_key_file = /etc/pki/tls/private/hostname.key#g' /etc/postfix/main.cf
- # Postfix done
- # Dovecot
- sed -i 's#ssl_cert.*$#ssl_cert = </etc/pki/tls/certs/hostname.bundle#g' /etc/dovecot/dovecot.conf
- sed -i 's#ssl_ca.*$#ssl_ca = </etc/pki/tls/certs/hostname.bundle#g' /etc/dovecot/dovecot.conf
- sed -i 's#ssl_key.*$#ssl_key = </etc/pki/tls/private/hostname.key#g' /etc/dovecot/dovecot.conf
- # Dovecot done
- # Apache
- if [[ -f /usr/local/apache/conf.d/hostname-ssl.conf ]]; then
- sed 's#SSLCertificateFile.*$#SSLCertificateFile = /etc/pki/tls/certs/hostname.bundle#g' /usr/local/apache/conf.d/hostname-ssl.conf
- sed 's#SSLCertificateChainFile.*$#SSLCertificateChainFile = /etc/pki/tls/certs/hostname.bundle#g' /usr/local/apache/conf.d/hostname-ssl.conf
- sed 's#SSLCertificateKeyFile.*$#SSLCertificateKeyFile = /etc/pki/tls/private/hostname.key#g' /usr/local/apache/conf.d/hostname-ssl.conf
- fi
- # Apache done
- # nginx
- if [[ -f /etc/nginx/conf.d/hostname-ssl.conf ]]; then
- sed -i 's#ssl_certificate.*$#ssl_certificate /etc/pki/tls/certs/hostname.bundle;#g' /etc/nginx/conf.d/hostname-ssl.conf
- sed -i 's#ssl_certificate_key.*$#ssl_certificate_key /etc/pki/tls/private/hostname.key;#g' /etc/nginx/conf.d/hostname-ssl.conf
- fi
- # nginx end
- # CWP
- if [[ -f /usr/local/cwpsrv/conf/cwpsrv.conf ]]; then
- sed -i 's#ssl_certificate .*$#ssl_certificate /etc/pki/tls/certs/hostname.bundle;#g' /usr/local/cwpsrv/conf/cwpsrv.conf
- sed -i 's#ssl_certificate_key.*$#ssl_certificate_key /etc/pki/tls/private/hostname.key;#g' /usr/local/cwpsrv/conf/cwpsrv.conf
- fi
- if [[ -f /usr/local/cwpsrv/conf.d/user-api.conf ]]; then
- sed -i 's#ssl_certificate .*$#ssl_certificate /etc/pki/tls/certs/hostname.bundle;#g' /usr/local/cwpsrv/conf.d/user-api.conf
- sed -i 's#ssl_certificate_key.*$#ssl_certificate_key /etc/pki/tls/private/hostname.key;#g' /usr/local/cwpsrv/conf.d/user-api.conf
- fi
- if [[ -f /usr/local/cwpsrv/conf.d/users.conf ]]; then
- sed -i 's#ssl_certificate .*$#ssl_certificate /etc/pki/tls/certs/hostname.bundle;#g' /usr/local/cwpsrv/conf.d/users.conf
- sed -i 's#ssl_certificate_key.*$#ssl_certificate_key /etc/pki/tls/private/hostname.key;#g' /usr/local/cwpsrv/conf.d/users.conf
- fi
- if [[ -f /usr/local/cwpsrv/conf.d/webmail.conf ]]; then
- sed -i 's#ssl_certificate .*$#ssl_certificate /etc/pki/tls/certs/hostname.bundle;#g' /usr/local/cwpsrv/conf.d/webmail.conf
- sed -i 's#ssl_certificate_key.*$#ssl_certificate_key /etc/pki/tls/private/hostname.key;#g' /usr/local/cwpsrv/conf.d/webmail.conf
- fi
- # CWP end
- # Pure-ftpd
- sed -i "s/^CertFile/#CertFile/g" /etc/pure-ftpd/pure-ftpd.conf
- sed -i "s/^CertFileAndKey/#CertFileAndKey/g" /etc/pure-ftpd/pure-ftpd.conf
- sed -i "s/^TLS/#TLS/g" /etc/pure-ftpd/pure-ftpd.conf
- echo "TLS 1" >> /etc/pure-ftpd/pure-ftpd.conf
- echo 'CertFileAndKey /etc/pki/tls/certs/hostname.bundle /etc/pki/tls/private/hostname.key' >> /etc/pure-ftpd/pure-ftpd.conf
- # Pure-ftpd end
- else
- sh /scripts/generate_hostname_ssl
- fi
- for i in postfix dovecot cwpsrv httpd nginx; do service $i restart ; done
- echo "Installation completed, you can reboot the server and enjoy in cwp!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement