Бэкап на флешку с шифрованием

Вообщем то вот скрипт для резервного копирования всего чего нужно на флешку или другой носитель.

#!/bin/bash

declare -A BACKUP
declare -A BACKUP_EXCLUDE

# Список каталогов для резервирования через пробел.
BACKUP[my-user]="/home/my-user"
# Если нужно исключить какие то каталоги заносим их в этот массив через пробел
BACKUP_EXCLUDE[my-user]="/home/my-user/Tmp /home/my-user/Загрузки /home/my-user/Музыка /home/my-user/Видео"

# Каталог куда делаем бэкап
BACKUP_DIR=~/Tmp

function get_excludes () {
    RES=""
    if [[ -v "BACKUP_EXCLUDE[$1]" ]] ; then
        for i in ${BACKUP_EXCLUDE[$1]}; do
            RES="${RES} --exclude $(remove_slash $i)"
        done
    fi
    echo ${RES}
}

function remove_slashes_from_str () {
    RES=""
    for i in $1; do
        RES="${RES} $(remove_slash $i)"
    done

    echo ${RES}
}

function remove_slash () {
    echo $(echo "$1" | sed 's:^/::g' | sed 's:/$::g')
}

for key in ${!BACKUP[@]}
do
     tar  -C / $(get_excludes $key) -c $(remove_slashes_from_str "${BACKUP[$key]}") | pigz | openssl enc -e -aes-256-cbc -pbkdf2 -out  ${BACKUP_DIR}/${key}-`/bin/date +%Y-%m-%d`.tgz.enc
done

Для распаковки используем команду

openssl enc -d -aes-256-cbc -pbkdf2 -in my-user-*.tgz.enc |pigz -d | tar -x

[ Править ]

@kiranananda