|
|
@@ -0,0 +1,39 @@ |
|
|
|
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 acts 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``` |