LINUX.ORG.RU

скрипт бекапа. Не игнорирует директории

 


0

1
source /etc/PROFILE

ARRAY=()
prefix_exclude="--exclude="
list_exclude=("${PROFILE_USER_HOME}/archives" \
                  "${USER_HOME}/.cabal" \
                  "${USER_HOME}/.cache" \
                  "${USER_HOME}/.ccache"\
                  "${USER_HOME}/.dropbox-dist" \
                  "${USER_HOME}/.dwm" \
                  "${USER_HOME}/.emacs.d" \
                  "${USER_HOME}/.ghc" \
                  "${USER_HOME}/.golang" \
                  "${USER_HOME}/.googleearth" \
                  "${USER_HOME}/.local/share/Steam" \
                  "${USER_HOME}/.local/share/Trash" \
                  "${USER_HOME}/.npm" \
                  "${USER_HOME}/.recoll" \
                  "${USER_HOME}/.sdkman" \
                  "${USER_HOME}/.steam" \
                  "${USER_HOME}/.thumbnails" \
                  "${USER_HOME}/.vim" \
                  "${USER_HOME}/.wine" \
                  "${USER_HOME}/.wine" \
                  "${USER_HOME}/Desktop" \
                  "${USER_HOME}/Downloads" \
                  "${USER_HOME}/docker" \
                  "${USER_HOME}/export" \
                  "${USER_HOME}/game_distr" \
                  "${USER_HOME}/game_server" \
                  "${USER_HOME}/garbage" \
                  "${USER_HOME}/media" \
                  "${USER_HOME}/myconfig" \
                  "${USER_HOME}/myscript" \
                  "${USER_HOME}/node_modules" \
                  "${USER_HOME}/old_home_d" \
                  "${USER_HOME}/skeleton" \
                  "${USER_HOME}/virtualbox vms" \
                  "${USER_HOME}/.gradle" \
                  "${USER_HOME}/Android" \
                  "${USER_HOME}/.AndroidStudio3.5" \
                  "/root/.emacs.d" \
                  "/root/.vim" \
             )

# exclude dead directories
for var in "${list_exclude[@]}"
do
    if [[ -d "${var}" ]]; then
        VAR3="${prefix_exclude}\"${var}\""
        ARRAY+=(${VAR3})

    fi
done

sudo ${HLPR_PRIORITY_LOW} tar cf - \
     ${ARRAY[@]} \
      ${USER_HOME} \
     /etc \
     /root \
    | sudo ${HLPR_PRIORITY_LOW} gzip -7 > "${HLPR_DIR_BAK}/home-backup-$(date '+%Y%m%d_%H%M%S').tgz"
★★★★

tar отрезает начальный / из путей (о чем и сообщает). Поэтому твои исключения вида /home/username/.cache не совпадают с путями типа home/username/.cache.

man tar:

-P, --absolute-names

Don't strip leading slashes from file names when creating archives.

Рекомендую вынести список исключений в отдельный файл и подключать через --exclude-from=FILE, так с ним будет проще работать.

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.