This is a backup script generator for backing up my system to external USB drives.
- Allow for declarative description of the backup tasks by describing which source directories are to be backed up
- Check for common errors.
- Generate a shell script to to the job.
- Check for duplicate backups actions.
- Verifying that the source and destination paths exists and are mount points when that's necessary.
- Outputting a very user-readable shell script that can be easily checked before running backup.
- Edit the configuration (currently the backup plan records inside app-data.rkt
- Run the program
racket mirror-backup.rkt
2.1. That creates the program: *mirror-backup.sh*
- Examining the shell script.
- Run the script:
sh mirror-backup.sh
- There is a Makefile in the sources directory. Running
make test will generate the shell script and run it.
- Running this script requires superuser privileges. At least that is the intention. It cat work for anyone who has permission to write in the target paths.
- Some knowledge of Scheme could be helpful. It is easy for a non Schemer to hose things up.
- Requires Racket pagkage "Rebellion":
raco install -i --auto rebellion
Eventually, the configuration my be separated from the source code and converted into a YAML config file. From there, even a GUI is possible for the purposes of configuring and ruining the backup.