Web-Server Transition

Several years the kate-editor.org & cullmann.io pages got hosted on a Hetzner root server. To reduce costs and switch away from old hardware they got now moved to an OpenVZ based virtual server at Host Europe.

On both servers CentOS 7.x is running, it did always provide a stable foundation for the services these sites use.

As with any server move in the past, I always need to search how to best move the data/config from one server to the other. To document this for me and others, here the quick way to move the basic things needed for web services using just plain Apache & MariaDB.

The following steps assume you have installed the same packages on both machines and the new machine is allowed to ssh as root to the old one. If you have non-system users, you should create them with the same ids as on the old server.

For the following shell commands, the old server address is $SERV and the MariaDB root password is $PASS on both machines. Best use the raw IP as address if you are in parallel updating your DNS entries to avoid confusion (and wrong syncs).

Attention: Wrong syncing of stuff can have disastrous consequences! Check all commands again before executing them, don’t trust random people like me without verification!

  • sync your data, assuming it is in /home and /srv/(ftp/www)
rsync --delete -av root@$SERV:/home/ /home
rsync --delete -av root@$SERV:/srv/ftp /srv
rsync --delete -av root@$SERV:/srv/www /srv
  • transfer your databases
ssh root@$SERV "mysqldump -u root -p$PASS --all-databases > /root/db.sql"
scp root@$SERV:/root/db.sql /root/
mysql -u root -p$PASS < /root/db.sql
  • sync configs (you might need more, this is just apache & vsftp)
rsync --delete -av root@$SERV:/etc/httpd /etc
rsync --delete -av root@$SERV:/etc/letsencrypt /etc
rsync --delete -av root@$SERV:/etc/vsftpd /etc
  • get crontabs over for later re-use, store them in the root home
rsync --delete -av root@$SERV:/var/spool/cron /root

Now all things should be there and after some service restarts e.g. WordPress powered pages should be up-and-running again.

I hope this short how-to helps others and allows me to avoid searching stuff in the future once again from scratch.

If you have feedback, drop me a mail at christoph@cullmann.io. Corrections or additions can be handed in as a pull request or patch for this repository, too. This web site honors your privacy, no social like or share buttons, feel free to share this content on your own.