-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-backup
More file actions
executable file
·30 lines (25 loc) · 1.28 KB
/
docker-backup
File metadata and controls
executable file
·30 lines (25 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
date=$(date +'%F')
application=("actual" "grocy" "homarr" "mealie" "ombi" "onlyoffice-nextcloud" "trilium" "uptime_kuma" "vaultwarden" "wikijs")
docker_dir=/home/tadmin
backup_dir=/home/tadmin/backups
remote_dir=/netshare/media/configs
# Verify CIFS share is mounted
if grep -qs '/netshare/media ' /proc/mounts; then
echo "CIFS Share is mounted" >> $remote_dir/logs/docker-backup-$date.log 2>&1
else
echo "CIFS Share is not mounted. Mounting.."; sudo mount -a >> $remote_dir/logs/docker-backup-$date.log 2>&1
fi
for app in ${application[@]};
do
docker compose -f $docker_dir/$app/docker-compose.yaml down >> $remote_dir/logs/docker-backup-$date.log 2>&1
tar -czvf $docker_dir/$app-backup-$date.tar.gz $app >> $remote_dir/logs/docker-backup-$date.log 2>&1
docker compose -f $docker_dir/$app/docker-compose.yaml up -d >> $remote_dir/logs/docker-backup-$date.log 2>&1
mv -v $docker_dir/$app-backup-$date.tar.gz $backup_dir >> $remote_dir/logs/docker-backup-$date.log 2>&1
done
# Copy to CIFS share
mkdir -v $remote_dir/$date >> $remote_dir/logs/docker-backup-$date.log 2>&1
cp -rv $backup_dir/*$date* $remote_dir/$date >> $remote_dir/logs/docker-backup-$date.log 2>&1
# Keep only last 7 days
find $backup_dir/ -mindepth 1 -mtime +7 -delete
find $remote_dir/ -mindepth 1 -mtime +7 -delete