Actualizado backup_maverick.sh

This commit is contained in:
2023-05-14 13:48:41 +02:00
parent 3b0ea83c1c
commit 126919b1f8
+34 -28
View File
@@ -4,57 +4,63 @@
NOW=$(date +"%d-%m-%Y %T") NOW=$(date +"%d-%m-%Y %T")
readonly NOW readonly NOW
BACKUP_SOURCE=/home/sergio ## Destino del backup
readonly BACKUP_SOURCE readonly BACKUP_MOUNT=/sustancia/maverick
readonly BACKUP_TARGET=${BACKUP_MOUNT}/backup
readonly LOG="${BACKUP_TARGET}"/backup_maverick.log
readonly TARGET_SYSTEM_FILES=${BACKUP_TARGET}/system
readonly TARGET_FILES=${BACKUP_TARGET}/files
readonly TARGET_DOCKER=${BACKUP_TARGET}/docker
readonly TARGET_HOME=${BACKUP_TARGET}/home
BACKUP_DOCKER_VOLUMES=/var/volumes ## Backup de la carpeta home
readonly BACKUP_DOCKER_VOLUMES readonly BACKUP_HOME=/home/sergio
BACKUP_TARGET=/sustancia/maverick/backup ## Backup de docker
readonly BACKUP_TARGET readonly BACKUP_DOCKER=/home/sergio/docker
readonly BACKUP_DOCKER_VOLUMES=/var/volumes
LOG="${BACKUP_SOURCE}"/cronjobs/backup_maverick.log ## Monta la carpetas del nas
readonly LOG mount $BACKUP_MOUNT
## Mount all ## Empieza el proceso de backup
mount -a
## Start backup
printf "\n\nBACKUP (%s)\n" "${NOW}" | tee "${LOG}" printf "\n\nBACKUP (%s)\n" "${NOW}" | tee "${LOG}"
## Backup system files ## Backup de ficheros del sistema
printf "\n\n>> BACKUP SYSTEM FILES\n" | tee "${LOG}" printf "\n\n>> BACKUP SYSTEM FILES\n" | tee "${LOG}"
rsync -avh --delete /etc/crontab "${BACKUP_TARGET}" | tee "${LOG}" for i in /etc/cron.*; do
rsync -avh --delete /etc/fstab "${BACKUP_TARGET}" | tee "${LOG}" rsync -avh --delete "$i" "${TARGET_SYSTEM_FILES}"/ | tee "${LOG}"
done
rsync -avh --delete /etc/fstab "${TARGET_SYSTEM_FILES}"/ | tee "${LOG}"
## Backup files ## Backup de ficheros
FILES=".gitconfig .git-credentials" FILES=".gitconfig .git-credentials"
for FILE in $FILES; do for FILE in $FILES; do
printf "\n\n>> BACKUP FILES\n" | tee "${LOG}" printf "\n\n>> BACKUP FILES\n" | tee "${LOG}"
if [ -f "${BACKUP_SOURCE}"/"${FILE}" ]; then if [ -f "${BACKUP_HOME}"/"${FILE}" ]; then
rsync -avh --delete "${BACKUP_SOURCE}"/"${FILE}" "${BACKUP_TARGET}" | tee "${LOG}" rsync -avh --delete "${BACKUP_HOME}"/"${FILE}" "${TARGET_FILES}" | tee "${LOG}"
fi fi
done done
## Backup folders ## Backup de las carpetas del directorio home
FOLDERS="cronjobs docs rgbpi .skyscraper .ssh" FOLDERS=".ssh"
for FOLDER in $FOLDERS; do for FOLDER in $FOLDERS; do
if [ -d "${BACKUP_SOURCE}"/"${FOLDER}" ]; then if [ -d "${BACKUP_HOME}"/"${FOLDER}" ]; then
printf "\n\n>> BACKUP %s\n" "${FOLDER}" | tee "${LOG}" printf "\n\n>> BACKUP %s\n" "${FOLDER}" | tee "${LOG}"
rsync -avh --delete "${BACKUP_SOURCE}"/"${FOLDER}" "${BACKUP_TARGET}"/"${FOLDER}" | tee "${LOG}" rsync -avh --delete "${BACKUP_HOME}"/"${FOLDER}" "${TARGET_HOME}"/"${FOLDER}" | tee "${LOG}"
fi fi
done done
## Backup docker ## Backup de docker compose y volumenes
docker stop "$(docker ps -q)" docker stop "$(docker ps -q)"
FOLDER=docker FOLDER=DOCKER
if [ -d "${BACKUP_SOURCE}"/"${FOLDER}" ]; then if [ -d "${BACKUP_DOCKER}" ]; then
printf "\n\n>> BACKUP %s\n" "${FOLDER}" | tee "${LOG}" printf "\n\n>> BACKUP %s\n" "${FOLDER}" | tee "${LOG}"
rsync -avh --delete "${BACKUP_SOURCE}"/"${FOLDER}" "${BACKUP_TARGET}"/"${FOLDER}" | tee "${LOG}" rsync -avh --delete "${BACKUP_DOCKER}/" "${TARGET_DOCKER}/compose/" | tee "${LOG}"
fi fi
FOLDER=docker_volumes FOLDER=DOCKER_VOLUMES
if [ -d "${BACKUP_DOCKER_VOLUMES}" ]; then if [ -d "${BACKUP_DOCKER_VOLUMES}" ]; then
printf "\n\n>> BACKUP %s\n" "${FOLDER}" | tee "${LOG}" printf "\n\n>> BACKUP %s\n" "${FOLDER}" | tee "${LOG}"
rsync -avh --delete "${BACKUP_DOCKER_VOLUMES}" "${BACKUP_TARGET}"/"${FOLDER}" | tee "${LOG}" rsync -avh --delete "${BACKUP_DOCKER_VOLUMES}/" "${TARGET_DOCKER}/volumes/" | tee "${LOG}"
fi fi
docker start "$(docker ps -a -q)" docker start "$(docker ps -a -q)"