From a7b06bdff0d67ad640074e3760dcc5b667b64663 Mon Sep 17 00:00:00 2001 From: David Runge Date: Fri, 20 Mar 2015 01:00:13 +0100 Subject: backup-git: Adding first version of backup-git script, service and timer. --- scripts/backup-git | 27 +++++++++++++++++++++++++++ system/backup-git.service | 11 +++++++++++ system/backup-git.timer | 10 ++++++++++ 3 files changed, 48 insertions(+) create mode 100755 scripts/backup-git create mode 100644 system/backup-git.service create mode 100644 system/backup-git.timer diff --git a/scripts/backup-git b/scripts/backup-git new file mode 100755 index 0000000..fc3abbc --- /dev/null +++ b/scripts/backup-git @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +timestamp="$(date +"%Y%m%d-%H%M%S")-" + +# If the backup location doesn't exist yet, create it +if [ ! -d $git_folder_destination ]; then + mkdir -p $git_folder_destination +fi + +# If the parent directory of the backup source exists, enter it +if [ -d $git_parent_source ]; then + cd $git_parent_source +else + exit 1 +fi + +echo "$git_folder_source -> $git_folder_destination$timestamp$git_folder_source$tar_suffix$gpg_suffix" +# tar in /tmp +tar cfJ $tmp$timestamp$git_folder_source$tar_suffix $git_folder_source +# gpg to git_folder_destination +gpg -e \ + -r "$gpg_public_key" \ + -o $git_folder_destination$timestamp$git_folder_source$tar_suffix$gpg_suffix \ + $tmp$timestamp$git_folder_source$tar_suffix +# delete tar in /tmp +rm -f $tmp$timestamp$git_folder_source$tar_suffix + diff --git a/system/backup-git.service b/system/backup-git.service new file mode 100644 index 0000000..8a9a72f --- /dev/null +++ b/system/backup-git.service @@ -0,0 +1,11 @@ +[Unit] +Description=Backup git repositories directory +ConditionFileIsExecutable=/usr/lib/systemd/scripts/backup-git + +[Service] +EnvironmentFile=/etc/backup-settings +Nice=19 +IOSchedulingClass=2 +IOSchedulingPriority=7 +ExecStart=/usr/lib/systemd/scripts/backup-git + diff --git a/system/backup-git.timer b/system/backup-git.timer new file mode 100644 index 0000000..337ef42 --- /dev/null +++ b/system/backup-git.timer @@ -0,0 +1,10 @@ +[Unit] +Description=Backup git repositories every Monday + +[Timer] +# Every Monday +OnCalendar=Mon *-*-* 06:00 +Persistent=true + +[Install] +WantedBy=timers.target -- cgit v1.2.3-54-g00ecf