Backing up manually

This chapter provides guidance for backing up your $JENKINS_HOME directory.

If you are using CloudBees CI, you also have the option to use the CloudBees Backup Plugin for backup and recovery.

If you are performing a manual backup of CloudBees CI, CloudBees Jenkins Distribution, CloudBees Jenkins Platform, CloudBees Jenkins Enterprise v1, or Jenkins, the recommended manual backup process is to schedule a cron job on a regular cadence to create a tarball of your $JENKINS_HOME directory.

There is no need to stop Jenkins when performing a backup.

Things to consider:

  • Refer to Explaining $JENKINS_HOME to determine what you want to include in your backup.

  • Store backup files on a different server for better security and in case of data corruption.

  • Store backup files on a different network for better security and in case of data corruption.

If running in Kubernetes, and your pod is still up and running, you can back it up manually using the following commands. In the following example, the controller is called production:

kubectl get pods -n cloudbees-ci
kubectl exec -n cloudbees-ci -it production-0 -- sh

cd /var
tar -cf - jenkins_home/ | gzip > /tmp/production-backup-2020-10-06.tar.gz

kubectl cp -n cloudbees-ci production-0:/tmp/production-backup-2020-10-06.tar.gz ./production-backup-2020-10-06.tar.gz
du -m ./production-backup-2020-10-06.tar.gz
The CloudBees Backup Plugin steps you through creating the Operations Center job for both backup and recovery. Even if you prefer to create your backups manually, consider setting it up as the Operations Center job that backs up everything across all masters.