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
The first rsync migrates the bulk of the email database except those queued during sync
# rsync --progress -zv -are ssh /home/vpopmail/domains/ root@$dhost:/home/vpopmail/domains
Stop services for second rsync
# qmailctl stop && systemctl stop dovecot
The second rsync
# rsync --progress -zv -are ssh /home/vpopmail/domains/ root@$dhost:/home/vpopmail/domains
Bring over the rest of the data
# mysqldump -u root -p vpopmail > vpopmail.sql
# scp vpopmail.sql root@$dhost:/root
# 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 /etc/dovecot/toaster.conf root@$dhost:/etc/dovecot
# rsync --progress -zv -are ssh /etc/dovecot/local.conf root@$dhost:/etc/dovecot
Not necessary to the migration
# 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
# rsync --progress -zv -are ssh /usr/share/squirrelmail/plugins/ root@$dhost:/usr/share/squirrelmail/plugins
# rsync --progress -zv -are ssh /etc/spamassassin/.spamassassin/ root@$dhost:/etc/spamassassin/.spamassassin
# rsync --progress -zv -are ssh /etc/spamassassin/local.cf root@$dhost:/etc/spamassassin
# rsync --progress -zv -are ssh /var/lib/squirrelmail/prefs/ root@$dhost:/var/lib/squirrelmail/prefs
On destination host
# mysql -u root -p vpopmail < vpopmail.sql
# qmailctl cdb && qmailctl start && sleep 2s && systemctl start dovecot && toaststat
Questions, comments, suggestions, corrections...contact Eric on the QMT list