EL7 to EL 8 or 9

From QmailToaster
Revision as of 20:57, 29 March 2024 by Ebroch (talk | contribs)
Jump to navigation Jump to search
On destination host
Install Rocky 8 or 9
qmailctl stop && systemctl stop dovecot
On source host Source host most likely EL7
# dhost=192.168.1.3 Change IP address for your needs
# ssh-keygen
# ssh-copy-id $dhost
# ssh $dhost
First rsync email db # rsync --progress -zv -are ssh /home/vpopmail/domains/ root@$dhost:/home/vpopmail/domains
Stop services for 2nd rsync # qmailctl stop && systemctl stop dovecot
Second rsync subsequent changes to email db # rsync --progress -zv -are ssh /home/vpopmail/domains/ root@$dhost:/home/vpopmail/domains
Bring over the rest of the data # rsync --progress -zv -are ssh /var/qmail/control/ root@$dhost:/var/qmail/control # rsync --progress -zv -are ssh /var/qmail/users/ root@$dhost:/var/qmail/users # rsync --progress -zv -are ssh /etc/tcprules.d/ root@$dhost:/etc/tcprules.d # rsync --progress -zv -are ssh /usr/share/toaster/include/admin.pass root@$dhost:/usr/share/toaster/include # rsync --progress -zv -are ssh /usr/share/toaster/include/admin.htpasswd root@$dhost:/usr/share/toaster/include # [ ! -d /etc/mail/spamassassin ] && sqadj= || sqadj=mail/ # rsync --progress -zv -are ssh /etc/${sqadj}spamassassin/.spamassassin/ root@$dhost:/etc/mail/spamassassin/.spamassassin # rsync --progress -zv -are ssh /etc/${sqadj}spamassassin/*.cf root@$dhost:/etc/mail/spamassassin # rsync --progress -zv -are ssh /usr/share/squirrelmail/plugins/ root@$dhost:/usr/share/squirrelmail/plugins # rsync --progress -zv -are ssh /var/lib/squirrelmail/prefs/ root@$dhost:/var/lib/squirrelmail/prefs
Dovecot files are not necessary for EL 8/9 they are only for reference # rsync --progress -zv -are ssh /etc/dovecot/toaster.conf root@$dhost:/etc/dovecot # rsync --progress -zv -are ssh /etc/dovecot/local.conf root@$dhost:/etc/dovecot
Bring over MySQL DBs # mysqldump -u root -p dspam > dspam.sql # mysqldump -u root -p spamassassin > spamassassin.sql # mysqldump -u root -p roundcube > roundcube.sql # mysqldump -u root -p vpopmail > vpopmail.sql # scp *.sql root@$dhost:/root
On destination host Create credentials # credfile=~/sql.cnf # echo -e "[client]\nuser=root\npassword=mysqlpass\nhost=localhost" > $credfile Edit credentials file and update password setting Load vpopmail # mysqladmin --defaults-extra-file=$credfile vpopmail < vpopmail.sql Load DSpam # mysqladmin --defaults-extra-file=$credfile create dspam # mysql --defaults-extra-file=$credfile -e "CREATE USER dspam@localhost IDENTIFIED BY 'p4ssw3rd'" # mysql --defaults-extra-file=$credfile -e "GRANT ALL PRIVILEGES ON dspam.* TO dspam@localhost" # mysql --defaults-extra-file=$credfile dspam < dspamdb.sql Load Roundcube # mysql --defaults-extra-file=$credfile -e "create database roundcube character set utf8 collate utf8_bin" # mysql --defaults-extra-file=$credfile -e "CREATE USER roundcube@localhost IDENTIFIED BY 'p4ssw3rd'" # mysql --defaults-extra-file=$credfile -e "GRANT ALL PRIVILEGES ON roundcube.* TO roundcube@localhost" # mysql --defaults-extra-file=$credfile roundcube < roundcube.sql Load Spamassassin # mysqladmin --defaults-extra-file=$credfile create spamassassin # mysql --defaults-extra-file=$credfile -e "CREATE USER spamassassin@localhost IDENTIFIED BY 'p4ssw3rd'" # mysql --defaults-extra-file=$credfile -e "GRANT ALL PRIVILEGES ON spamassassin.* TO spamassassin@localhost" # mysql --defaults-extra-file=$credfile spamassassin < spamassassin.sql
If you're migrating from a Many-Domain to Many-Domain backend nothing more is required
If you're migrating from a Domain-Table backend to a Many-Domain backend you'll need to run this script

# qmailctl cdb && qmailctl start && sleep 2s && systemctl start dovecot && toaststat
Questions, comments, suggestions, corrections...contact Eric on the QMT list