Guest User

Untitled

a guest
Oct 23rd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # lock script to prevent parallel running
  4. scriptname=$(basename "$0")
  5. pidfile="/tmp/${scriptname}-lock.pid"
  6. exec 200>"$pidfile"
  7. flock -n 200 || exit 1
  8. pid=$$
  9. echo $pid 1>&200
  10.  
  11. # error handling
  12. function error_handler() {
  13. echo "Error occurred in script at line: ${1}"
  14. echo "Line exited with status: ${2}"
  15. }
  16.  
  17. trap 'error_handler ${LINENO} $?' ERR
  18.  
  19. set -o errexit
  20. set -o errtrace
  21. set -o nounset
  22.  
  23. # set backups variable
  24. NOW=$(date +%F-%a) # year-month-date-day format
  25. BACKUPDIR="/var/lib/jenkins/backups"
  26. JENKINS_TAR="jenkins-$NOW.tar.bz2"
  27. S3_BUCKET="s3://<BUCKET_NAME>/jenkins/" # where <BUCKET_NAME> is your S3 bucket name
  28.  
  29. # check for backup directory
  30. if [[ ! -d "$BACKUPDIR" ]]
  31. then
  32. mkdir -p "$BACKUPDIR"
  33. fi
  34.  
  35. if ls "$BACKUPDIR"/FULL-* &> /dev/null; then
  36. # archive backup
  37. cd "$BACKUPDIR"
  38. tar -cjf "$JENKINS_TAR" FULL-*
  39.  
  40. # copy to S3 bucket
  41. aws s3 cp "$BACKUPDIR"/"$JENKINS_TAR" "$S3_BUCKET"
  42.  
  43. # cleanup disk space
  44. rm -rf "${BACKUPDIR:?}"/*
  45. else
  46. clear
  47. echo "Backup from thinBackup on Jenkins not present. Please login to Jenkins and run manually..."
  48. exit 1
  49. fi
Add Comment
Please, Sign In to add comment