Skip to content

sue445/jenkins-backup-script

Folders and files

NameName
Last commit message
Last commit date
Jul 9, 2024
Apr 27, 2024
Dec 7, 2013
Apr 19, 2018
Apr 17, 2016
Apr 28, 2024
Jul 9, 2024
Apr 27, 2025
May 14, 2015
Dec 21, 2024
Apr 19, 2018
Apr 28, 2024
Apr 27, 2024

Repository files navigation

Jenkins backup script

test

Archive Jenkins settings and plugins

  • $JENKINS_HOME/*.xml
  • $JENKINS_HOME/*.jks
  • $JENKINS_HOME/jobs/*/*.xml
  • $JENKINS_HOME/nodes/*
  • $JENKINS_HOME/plugins/*.jpi
  • $JENKINS_HOME/secrets/*
  • $JENKINS_HOME/users/*

Usage

./jenkins-backup.sh /path/to/jenkins_home archive.tar.gz

# add timestamp suffix
./jenkins-backup.sh /path/to/jenkins_home backup_`date +"%Y%m%d%H%M%S"`.tar.gz

run with Jenkins Job

1. install Exclusive Execution Plugin

https://wiki.jenkins-ci.org/display/JENKINS/Exclusive+Execution+Plugin

2. New Job

img

3. Configure

Source Code Management > Repository URL

https://github.com/sue445/jenkins-backup-script.git

0.0.3

Build Triggers > Build periodically

img

Build Environment > Set exclusive Execution

img

Build > Execute shell

img

ex.

./jenkins-backup.sh $JENKINS_HOME /path/to/backup_`date +"%Y%m%d%H%M%S"`.tar.gz

Operability confirmed

  • Debian wheezy
  • Debian jessie
  • Debian stretch
  • Debian buster
  • CentOS 6
  • CentOS 7

Testing

requirements Docker

bundle install

bundle exec itamae docker --node-yaml=spec/node.yml spec/recipes/bootstrap.rb --image=centos:7 --tag local:latest
DOCKER_IMAGE=local:latest bundle exec rspec

Tips

rotate backup files

# keep backup with latest 30 days
find /path/to/backup_* -mtime +30 -delete

Restore commands

example

sudo /etc/init.d/jenkins stop
cd /path/to/backup_dir
tar xzvf backup.tar.gz
sudo cp -R jenkins-backup/* /path/to/jenkins/
sudo chown jenkins:jenkins -R /path/to/jenkins/
sudo /etc/init.d/jenkins start

Changelog

CHANGELOG.md