This repository has been archived on 2024-03-04. You can view files and clone it, but cannot push or open issues or pull requests.
linux/app/bin/home/backup

57 lines
1.6 KiB
Plaintext
Raw Normal View History

2023-08-08 16:24:15 +03:00
#!/bin/bash
2024-01-03 18:39:38 +03:00
for file in /var/roothome/.config/bash/module/*.sh; do
source "${file}"
done
2023-08-08 16:24:15 +03:00
dow=$(/usr/bin/date +%u) # current day of week number.
date=$(/usr/bin/date +%Y%m%d%H%M) # date stamp.
path_src="/var/mnt/storage/hot" # backup src location.
path_mount="/var/mnt/storage/cold_1" # backup mount location.
path_backup="${path_mount}/backup" # backup dir location.
path_docker="${path_backup}/home" # docker backup location.
2023-08-08 16:24:15 +03:00
path_media="/var/mnt/storage/cold_1/media /var/mnt/storage/cold_2/media" # media paths.
2023-12-11 16:56:09 +03:00
# Check if backup drive is mounted.
if [ ! -f "${path_mount}"/.mount ]; then
echo "Backup : ${path_mount} not mounted!"
notify "Backup : ${path_mount} not mounted!"
exit 1
2023-08-08 16:24:15 +03:00
fi
2023-12-11 16:56:09 +03:00
# Check if hot storage is mounted.
if [ ! -f "${path_src}"/.mount ]; then
echo "Backup : ${path_src} not mounted!"
notify "Backup : ${path_src} not mounted!"
exit 1
2023-08-08 16:24:15 +03:00
fi
2023-12-11 16:56:09 +03:00
# Tweak bash.
2023-08-08 16:24:15 +03:00
shopt -s globstar
shopt -s dotglob
2023-12-11 16:56:09 +03:00
# Cd to src storage.
builtin cd "${path_src}"
2023-08-08 16:24:15 +03:00
2023-12-11 16:56:09 +03:00
# Save media list.
2024-01-03 18:39:38 +03:00
/usr/bin/find ${path_media} -type d > ${path_backup}/media/ColdMedia.txt || notify 'Backup : Failed to save media list!'
cd ${path_backup}/media/
archive_fast ColdMedia.txt && rm ColdMedia.txt
archive_prune ColdMedia 1
cd -
2023-08-08 16:24:15 +03:00
2023-12-11 16:56:09 +03:00
# Backup docker.
rm ${path_docker}/${dow}_*.tgz
2024-01-03 18:39:38 +03:00
archive_fast docker/ && mv Docker_* ${path_docker}/ || notify 'Backup : Failed to save docker!'
cd ${path_docker}
archive_prune Docker 7
cd -
2023-08-08 16:24:15 +03:00
2024-01-03 18:43:18 +03:00
# Sync writes.
sync
2023-12-11 16:56:09 +03:00
# Notify completion & size.
bupsize=$(/usr/bin/du -h ${path_docker}/${dow}_*.tgz | awk '{print $1}')
notify_silent "Backup : Complete ${bupsize}."
echo "Backup : Complete ${bupsize}."