This feels like you were given a checklist and just asking us, most of this pretty searchable
The best one is the one your most comfortable with.
Yep, shutdown one (so it doesn’t do writes), copy the files over, start up new one. Its pretty forgiving
agents. And what environment variables are you meaning? Credentails are stored in JENKINS_HOME so they would get copied over. If your using permanent agents like SSH or JNLP, those are configured in JENKINS_HOME and should get copied over.
First google result for “jenkins migration” is data migration - How to move Jenkins from one PC to another - Stack Overflow which would seem to help. All of our documentation is written by volunteers, so once you figure out more details, feel free to open a PR and contribute back your learnings. I did a quick search on jenkins.io and didn’t see anything about migrating.