Bash-script to automatically back up files in a given list via git version control
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

README.md 1.5KB

This script checks if changes happened to a given list of files, and if so, it’ll store them into a next version as back up.

Setup

Install git.
Create a folder that should act as your automatic archive.
Open that folder with your terminal and execute git init
Create a file in the folder called “.gitignore” and put the following in it:

backup_routine.sh
backup_filelist.txt
log.txt

Create the files “backup_routine.sh” and “backup_filelist.txt” in this folder.
Copy the code from “backup_routine.sh” in this repository into yours.
Put the complete filepaths to the files you want to automatically be versioned into “backup_filelist.txt”.
Now use git add * and git commit -m "initial commit"
You’re done setting up your automatic archive.


Automation

Make it so that “sh backup_routine.sh” gets called automatically. I recommend setting up a cron job, for example by executing EDITOR=nano crontab -e and writing the following into crontab:

0,15,30,45 * * * * cd ~/Automatic\ Git\ Versioned\ Backups && sh backup_routine.sh

This will run the script every 15 minutes.


Restoration

Use

git log -- filename.ext

to view all the past versions.
Copy the commit-id of the version you wish to restore.
To recreate a past version, use

git show commit-id:filename.ext > path/to/restoration/filename.restored.ext

For example: git show 8f1dc7362dd5f6781ccf9ccc5a9cfdccb57ed709:ToDo.xlsx >> ToDo.restored.xlsx