diff options
Diffstat (limited to 'gemini/posts/git/2021-06-13/backing-up-a-git-repository/index.gmi')
| -rw-r--r-- | gemini/posts/git/2021-06-13/backing-up-a-git-repository/index.gmi | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/gemini/posts/git/2021-06-13/backing-up-a-git-repository/index.gmi b/gemini/posts/git/2021-06-13/backing-up-a-git-repository/index.gmi new file mode 100644 index 0000000..6d0a54b --- /dev/null +++ b/gemini/posts/git/2021-06-13/backing-up-a-git-repository/index.gmi @@ -0,0 +1,53 @@ +# Backing Up a Git Repository + +> Sun 13th June 2021 By David T. Sadler. + +Below is a quick and dirty way in which I backup all my repositories that are hosted at git.davidtsadler.com. + +```shell +#!/bin/sh + +DATE_PREFIX=$(date +%Y%m%d) + +BACKUP_DIRECTORY=/tmp + +BACKUP_FILE="${BACKUP_DIRECTORY}/${DATE_PREFIX}-repositories.tar.gz" + +BACKUP_FILES="${BACKUP_DIRECTORY}/*-repositories.tar.gz" + +REPOSITORIES=/home/git/*.git + +tar -czf $BACKUP_FILE $REPOSITORIES + +find $BACKUP_FILES -mtime +3 -delete + +exit 0 +``` + +All it does it tar and gzip any .git directories found under /home/git. It also removes any backups that are more than three days old. + +This script has been saved as /usr/bin/backup_repositories and is ran daily via cron. + +```cron +0 3 * * * /usr/bin/backup_repositories > /dev/null 2>&1 +``` + +It is important to know that this backup strategy is far from ideal for repositories that are heavily used as you run the high risk of trying to backup a repository as users are pushing to it. As git updates a repository in two phases this will lead to a backup that may not contain all the data and so won't be suitable for restoring. However its fine for my purposes since I'm the only user and it's unlikely that I will be making changes during the time the backup is running. + +### Links + +=> /posts/git/2021-05-29/setting-up-a-self-host-git-server/ 2021-05-29 - Setting up a Self Hosted Git Server + +=> /posts/git/ Git - Read More Posts. + +I don't have comments as I don't want to manage them. You can however contact me at the below address if you want to. + +=> mailto:david@davidtsadler.com Email david@davidtsadler.com + +### License + +=> https://creativecommons.org/licenses/by-sa/4.0/ The contents of this site is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. + +Copyright © 2021 David T. Sadler. + +=> / Return to Homepage. |
