Advertisement
RussianAdmins

4-import-into-cwp.sh

Aug 14th, 2019
483
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 10.09 KB | None | 0 0
  1. #!/bin/bash
  2. # Get usernames old+new and change passwd,shadow,groups
  3. dir=/root/migration
  4. mkdir /usr/local/cwp/.conf/
  5. touch /usr/local/cwp/.conf/mysql_user_prefix.conf
  6. for lUSER in `awk '{print $1}' /root/migration/userlist`; do
  7.   for SHORT in `grep $lUSER /root/migration/userlist | awk '{print $2}'`; do
  8.     #SHORT=`grep $USER /root/migration/userlist | awk '{print $2}'`
  9.     PREFIX=`mysql --skip-column-names -e "SELECT user FROM mysql.user WHERE user LIKE '${SHORT}_%'" | sort| uniq `
  10.     if [ ! -z "$PREFIX" ] && [ ! "$lUSER" == "$SHORT" ] ; then echo "$lUSER:$SHORT" >> /usr/local/cwp/.conf/mysql_user_prefix.conf; fi
  11.   done
  12. done
  13.  
  14.  
  15. echo "Import users data from SQL files"
  16. VERSION=`mysql -V |awk '{print $5}' |sed "s/-[[:alpha:]].*$//"`
  17. if [ -z "`mysql -V |grep -i mariadb`" ]; then # There is MySQL server
  18.  if [[ "$VERSION" > "5.6.9" ]]; then
  19.     NEW=1
  20.     else
  21.     NEW=0
  22.  fi
  23. else # There is MariaDB server 10.4
  24.  if [[ "$VERSION" > "10.4" ]]; then
  25.     NEW=1
  26.     else
  27.     NEW=0
  28.  fi
  29. fi
  30. if [ $NEW = "1" ]; then
  31.     if [ -z "`grep mysqld /etc/my.cnf`" ];
  32.      then
  33.         sed -i '1 a [mysqld]' /etc/my.cnf
  34.         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
  35.     else
  36.         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
  37.    fi
  38. systemctl restart mysqld mariadb
  39. fi
  40. mysql -D root_cwp -e "ALTER TABLE user ALTER setup_date SET default '1970-01-01 00:00:00'" ; echo -n "."
  41. mysql -D root_cwp -e "ALTER TABLE user ALTER last_access SET default '1970-01-01 00:00:00'" ; echo -n "."
  42. mysql -D root_cwp -e "ALTER TABLE subdomains ALTER setup_time SET default '1970-01-01 00:00:00'" ; echo -n "."
  43. mysql -D root_cwp -e "ALTER TABLE subdomains MODIFY user varchar(40)" ; echo -n "."
  44. mysql -D root_cwp -e "ALTER TABLE packages MODIFY reseller varchar(40) NULL" ; echo -n "."
  45. mysql -D root_cwp -e "ALTER TABLE packages MODIFY accounts varchar(40) NULL" ; echo -n "."
  46. mysql -D postfix -e  "ALTER TABLE domain MODIFY transport varchar(255) NULL" ; echo -n "."
  47. mysql -D root_cwp < $dir/packages.sql
  48. for PACK in `cat $dir/packages` ; do
  49.     PACK="`echo $PACK | sed 's/=/ /g'`"
  50.     ID=`mysql --skip-column-names -D root_cwp -e "SELECT id FROM packages WHERE package_name='$PACK'"`
  51.     if [[ "$ID" == "" ]]; then echo "CHECK MIGRATED PACKAGES! EXIT"; exit 1; fi
  52.     sed -i "s/, '$PACK', /, '$ID', /g" $dir/users.sql
  53.     echo -n "."
  54. done
  55.  
  56. echo "MySQL Import domains $dir/domains.sql"
  57. mysql -D root_cwp < $dir/domains.sql
  58.  
  59. echo "MySQL Import domains $dir/users.sql"
  60. mysql -D root_cwp < $dir/users.sql
  61.  
  62. echo "MySQL Import domains $dir/email_accounts.sql"
  63. mysql -D postfix  < $dir/email_accounts.sql
  64.  
  65. echo "MySQL Import domains $dir/mail_autoresponders.sql"
  66. mysql -D postfix  < $dir/mail_autoresponders.sql
  67.  
  68. echo "MySQL Import domains $dir/mail_forwarders.sql"
  69. mysql -D postfix  < $dir/mail_forwarders.sql
  70.  
  71. echo "MySQL Import domains $dir/resellers_double_plans.sql"
  72. mysql -D root_cwp < $dir/resellers_double_plans.sql
  73.  
  74. echo
  75. echo "Done"
  76. echo "Import emails" ; echo
  77. for i in `cat $dir/vmail`; do
  78.     if [ -d $i ]; then
  79.      echo -n "." ; /bin/mv $i /var/vmail
  80.     fi
  81.     chown -R vmail:mail /var/vmail
  82. done
  83. echo "Done."
  84. echo "Converting Cronjobs"
  85. for i in `cd /var/spool/cron/ ; ls`; do
  86.     if [ -e "/var/spool/cron/$i" ];then
  87.         sed -i '/^SHELL.*$/d' /var/spool/cron/$i ; echo -n "."
  88.     fi
  89. done
  90. echo
  91. echo "Done"
  92.  
  93. echo "Fix accounts, webserver configs... Wait."
  94. sh /scripts/update_cwp
  95. chmod +x /scripts/cwp_api
  96.  
  97. for USER in `cut -d' ' -f1 $dir/userlist `; do
  98.     /scripts/cwp_api account fix_perms $USER
  99. done
  100. cp $dir/ssl/certs/* /etc/pki/tls/certs/
  101. cp $dir/ssl/private/* /etc/pki/tls/private/
  102. while read line; do
  103.  echo -n ".";
  104. /scripts/cwp_api webservers add_ssl $line
  105. done < $dir/had_ssl
  106.  
  107. echo
  108. echo "Importing FTP accounts"
  109. while read line; do
  110.     virtualuser=`echo $line| awk -F: {'print $1'}`
  111.     password=`echo $line| awk -F: {'print $2'}`
  112.     uid=`echo $line| awk -F: {'print $3'}`
  113.     gid=`echo $line| awk -F: {'print $4'}`
  114.     username=`echo $line| awk -F: {'print $5'}`
  115.     path=`echo $line| awk -F: {'print $6'}`    
  116.     if [ ! -z "$virtualuser" ];then
  117.         echo "$virtualuser:$password:$uid:$gid::$path::::::::::::" >> /etc/pure-ftpd/pureftpd.passwd
  118.     fi
  119. done < $dir/ftp.importlist
  120. /usr/bin/pure-pw mkdb /etc/pure-ftpd/pureftpd.pdb -f /etc/pure-ftpd/pureftpd.passwd -m
  121. echo
  122. echo "Done."
  123.  
  124. sh /scripts/cwpsrv_rebuild_user_conf
  125. /scripts/cwp_api webservers rebuild_all
  126. echo
  127. echo "Done"
  128.  
  129. #Fix named crash
  130. sed -i "s/inet\ any\ allow/\/\/inet\ any\ allow/" /etc/named.conf
  131. service named restart
  132.  
  133. # Add cPanel AddHandler names
  134. sh /scripts/cpanel_addhandlers
  135.  
  136. # Download and install all php selector versions from 5.3 - 7.3
  137. if [ ! -z "$1" ];then
  138.     if [ "$1" == "php" ];then
  139.         #PHP Selector
  140.         echo
  141.         echo "Starting PHP Selector Fast Install"
  142.         cd /
  143.         wget dl1.centos-webpanel.com/files/php/full/el7/selector/php-selector.zip
  144.         unzip php-selector.zip
  145.         rm -f php-selector.zip
  146.  
  147.         wget http://dl1.centos-webpanel.com/files/php/selector/el7/php-dependencies.sh -O /usr/local/src/php-dependencies.sh
  148.         sh /usr/local/src/php-dependencies.sh
  149.  
  150.         yum -y install ImageMagick ImageMagick-devel ImageMagick-perl icu icu-devel libmcrypt libmcrypt-devel
  151.  
  152.         rpm -e --nodeps libzip libzip-devel
  153.         yum -y install cmake cmake3 zlib-devel --enablerepo=epel
  154.  
  155.         cd /usr/local/src
  156.         wget http://libzip.org/download/libzip-1.5.1.tar.gz
  157.         tar zxvf libzip*
  158.         cd libzip*
  159.         mkdir build
  160.         cd build
  161.         /usr/bin/cmake3 ..
  162.         make && make install
  163.         rm -Rf /usr/local/src/libzip*
  164.  
  165.         if [ ! -e "/usr/local/ioncube/" ];then
  166.             sh /scripts/update_ioncube
  167.             # ioncube installer
  168.             if [ -e "/usr/local/php/php.d/ioncube.ini" ]; then
  169.                 echo 'zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.3.so' > /opt/alt/php73/usr/php/php.d/ioncube.ini
  170.             fi
  171.         fi
  172.     fi
  173. fi
  174.  
  175. # Install hostname SSL
  176. if [[ -f /root/migration/ssl/private/hostname.pem ]]; then
  177.  openssl x509 -in /root/migration/ssl/private/hostname.pem > /etc/pki/tls/certs/hostname.bundle
  178.  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
  179.  openssl rsa -in /root/migration/ssl/private/hostname.pem > /etc/pki/tls/private/hostname.key
  180.  
  181. # Postfix
  182. sed -i 's#smtpd_tls_cert_file.*$#smtpd_tls_cert_file = /etc/pki/tls/certs/hostname.bundle#g' /etc/postfix/main.cf
  183. sed -i 's#smtp_tls_CAfile.*$#smtp_tls_CAfile = /etc/pki/tls/certs/hostname.bundle#g' /etc/postfix/main.cf
  184. sed -i 's#smtpd_tls_CAfile.*$#smtpd_tls_CAfile = /etc/pki/tls/certs/hostname.bundle#g' /etc/postfix/main.cf
  185. sed -i 's#smtpd_tls_key_file.*$#smtpd_tls_key_file = /etc/pki/tls/private/hostname.key#g' /etc/postfix/main.cf
  186. # Postfix done
  187.  
  188. # Dovecot
  189. sed -i 's#ssl_cert.*$#ssl_cert = </etc/pki/tls/certs/hostname.bundle#g' /etc/dovecot/dovecot.conf
  190. sed -i 's#ssl_ca.*$#ssl_ca = </etc/pki/tls/certs/hostname.bundle#g' /etc/dovecot/dovecot.conf
  191. sed -i 's#ssl_key.*$#ssl_key = </etc/pki/tls/private/hostname.key#g' /etc/dovecot/dovecot.conf
  192. # Dovecot done
  193.  
  194. # Apache
  195. if [[ -f /usr/local/apache/conf.d/hostname-ssl.conf ]]; then
  196.  sed 's#SSLCertificateFile.*$#SSLCertificateFile = /etc/pki/tls/certs/hostname.bundle#g' /usr/local/apache/conf.d/hostname-ssl.conf
  197.  sed 's#SSLCertificateChainFile.*$#SSLCertificateChainFile = /etc/pki/tls/certs/hostname.bundle#g' /usr/local/apache/conf.d/hostname-ssl.conf
  198.  sed 's#SSLCertificateKeyFile.*$#SSLCertificateKeyFile = /etc/pki/tls/private/hostname.key#g' /usr/local/apache/conf.d/hostname-ssl.conf
  199. fi
  200. # Apache done
  201.  
  202. # nginx
  203. if [[ -f /etc/nginx/conf.d/hostname-ssl.conf ]]; then
  204.  sed -i 's#ssl_certificate.*$#ssl_certificate /etc/pki/tls/certs/hostname.bundle;#g' /etc/nginx/conf.d/hostname-ssl.conf
  205.  sed -i 's#ssl_certificate_key.*$#ssl_certificate_key /etc/pki/tls/private/hostname.key;#g' /etc/nginx/conf.d/hostname-ssl.conf
  206. fi
  207. # nginx end
  208.  
  209. # CWP
  210. if [[ -f /usr/local/cwpsrv/conf/cwpsrv.conf ]]; then
  211.  sed -i 's#ssl_certificate .*$#ssl_certificate /etc/pki/tls/certs/hostname.bundle;#g' /usr/local/cwpsrv/conf/cwpsrv.conf
  212.  sed -i 's#ssl_certificate_key.*$#ssl_certificate_key /etc/pki/tls/private/hostname.key;#g' /usr/local/cwpsrv/conf/cwpsrv.conf
  213. fi
  214. if [[ -f /usr/local/cwpsrv/conf.d/user-api.conf ]]; then
  215.  sed -i 's#ssl_certificate .*$#ssl_certificate /etc/pki/tls/certs/hostname.bundle;#g' /usr/local/cwpsrv/conf.d/user-api.conf
  216.  sed -i 's#ssl_certificate_key.*$#ssl_certificate_key /etc/pki/tls/private/hostname.key;#g' /usr/local/cwpsrv/conf.d/user-api.conf
  217. fi
  218. if [[ -f /usr/local/cwpsrv/conf.d/users.conf ]]; then
  219.  sed -i 's#ssl_certificate .*$#ssl_certificate /etc/pki/tls/certs/hostname.bundle;#g' /usr/local/cwpsrv/conf.d/users.conf
  220.  sed -i 's#ssl_certificate_key.*$#ssl_certificate_key /etc/pki/tls/private/hostname.key;#g' /usr/local/cwpsrv/conf.d/users.conf
  221. fi
  222. if [[ -f /usr/local/cwpsrv/conf.d/webmail.conf ]]; then
  223.  sed -i 's#ssl_certificate .*$#ssl_certificate /etc/pki/tls/certs/hostname.bundle;#g' /usr/local/cwpsrv/conf.d/webmail.conf
  224.  sed -i 's#ssl_certificate_key.*$#ssl_certificate_key /etc/pki/tls/private/hostname.key;#g' /usr/local/cwpsrv/conf.d/webmail.conf
  225. fi
  226. # CWP end
  227.  
  228. # Pure-ftpd
  229. sed -i "s/^CertFile/#CertFile/g" /etc/pure-ftpd/pure-ftpd.conf
  230. sed -i "s/^CertFileAndKey/#CertFileAndKey/g" /etc/pure-ftpd/pure-ftpd.conf
  231. sed -i "s/^TLS/#TLS/g" /etc/pure-ftpd/pure-ftpd.conf
  232. echo "TLS 1" >> /etc/pure-ftpd/pure-ftpd.conf
  233. echo 'CertFileAndKey /etc/pki/tls/certs/hostname.bundle /etc/pki/tls/private/hostname.key' >> /etc/pure-ftpd/pure-ftpd.conf
  234. # Pure-ftpd end
  235.  
  236. else
  237.  sh /scripts/generate_hostname_ssl
  238. fi
  239. for i in postfix dovecot cwpsrv httpd nginx; do service $i restart ; done
  240.  
  241. echo "Installation completed, you can reboot the server and enjoy in cwp!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement