diff options
author | David Runge <dave@sleepmap.de> | 2015-10-27 00:15:04 +0100 |
---|---|---|
committer | David Runge <dave@sleepmap.de> | 2015-10-27 00:15:04 +0100 |
commit | 650e402d9069126720c629be1dda9e77bdc80e6b (patch) | |
tree | 4b5f5e7b7ab405827d8f2d93b48d017ea013b913 /bin | |
parent | 57ebb268266c9ccece1146ccd994c2846701cb39 (diff) | |
download | crypted-backups-650e402d9069126720c629be1dda9e77bdc80e6b.tar.gz crypted-backups-650e402d9069126720c629be1dda9e77bdc80e6b.tar.bz2 crypted-backups-650e402d9069126720c629be1dda9e77bdc80e6b.tar.xz crypted-backups-650e402d9069126720c629be1dda9e77bdc80e6b.zip |
bin/crypted-backups: Adding function to cleanup backups older than pre-defined number of days.
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/crypted-backups | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/bin/crypted-backups b/bin/crypted-backups index 3019c7e..d96ad36 100755 --- a/bin/crypted-backups +++ b/bin/crypted-backups @@ -10,6 +10,7 @@ else fi user_mode="" source_mode="" +cleanup_mode=0 verbose=0 function notification_source_to_destination () { @@ -53,6 +54,17 @@ function sanitize_pathname () { fi } +function check_cleanup_settings () { + [ $verbose -gt 0 ] && echo "Checking cleanup settings." + if ![[ $cleanup_older_than =~ '^[0-9]+$' ]];then + echo "Error! \"cleanup_older_than\" is not an integer: $cleanup_older_than." + return 1 + elif [ ${#cleanup_directory} -eq 0 ];then + echo "Error! \"cleanup_directory\" is not set!" + return 1 + fi +} + function check_gpg_set () { [ $verbose -gt 0 ] && echo "Checking, if \"gpg_public_key\" is set." if [ -z "$gpg_public_key" ];then @@ -333,15 +345,22 @@ function set_user_mode () { return 0 } +function cleanup_backup () { + local cleanup_directory=$(sanitize_pathname $cleanup_directory) + check_cleanup_settings + "check_"$user_mode"_directory" $cleanup_directory + [ $verbose -gt 0 ] && echo "Cleaning up $cleanup_directory by removing files older than $cleanup_older_than days." + find $cleanup_directory -type f -atime +$cleanup_older_than -print -exec rm {} \; + return 0 +} + function print_help () { echo "help" exit 0 } -#TODO: Add function to cleanup backups #TODO: Add function to mirror backups #TODO: Add function to automatically add key to keyring, if not found -#TODO: Add verbose flag check_gpg_set @@ -351,7 +370,7 @@ if [ ${#@} -gt 0 ]; then while getopts 'c:hr:s:v' flag; do case "${flag}" in c) - echo "Cleanup" + cleanup_mode=1 ;; h) print_help @@ -424,6 +443,8 @@ if [ -n "$source_mode" ];then echo "Error. $source_mode is not a valid backup option." exit 1 esac +elif [ $cleanup_mode -eq 1 ];then + cleanup_backup fi exit 0 |