Migrating a VPS goes sideways in the same places every time — and it's never the part you expect. It's the queue worker left on the old box. The certbot renewal in root's crontab. The rsync that died on permissions.
Before you move anything, audit the old server. Here's the checklist.
Running services
systemctl list-units --type=service --state=running
ss -tlnp
Write down everything. That random Python process on port 8000? That's serving something. Find out what before you migrate.
Cron jobs (all four places)
crontab -l # your user
sudo crontab -l # root
ls /etc/cron.d/ /etc/cron.daily/ /etc/cron.hourly/
systemctl list-timers # systemd timers (the new cron)
Miss one and something silently stops working a week after migration.
Disk and databases
df -h
du -sh /var/www/* /home/*
mysql -e "SHOW DATABASES;" # or psql -l for Postgres
Know what you're moving before you start moving it.
SSL certificates
certbot certificates
ls /etc/letsencrypt/live/
Note expiry dates and renewal method. If certbot auto-renewal is configured, that config needs to move too.
Config files
Document every customized config: nginx/apache vhosts, PHP settings, systemd units, environment files. diff against defaults if you're not sure what you changed.
This audit is Zone 1 of my VPS Migration Checklist & Runbook — 38 checkpoints across 8 zones, from this audit through cutover and the 24-hour watch afterward. The full runbook covers rsync flags, database moves, the hosts-file testing trick, and the rollback plan you write before you need it.
Top comments (0)