Added draft for backup by volume instead of container

This commit is contained in:
Kevin Veen-Birkenbach 2021-08-19 13:43:22 +02:00
parent 5f6e60d502
commit c303a8b452

View File

@ -1,10 +1,14 @@
#!/bin/bash #!/bin/bash
# Just backups volumes of running containers
# If rsync stucks consider: # If rsync stucks consider:
# @see https://stackoverflow.com/questions/20773118/rsync-suddenly-hanging-indefinitely-during-transfers # @see https://stackoverflow.com/questions/20773118/rsync-suddenly-hanging-indefinitely-during-transfers
#
backup_time="$(date '+%Y%m%d%H%M%S')"; backup_time="$(date '+%Y%m%d%H%M%S')";
backups_folder="/Backups/"; backups_folder="/Backups/";
for docker_container_name in $(docker ps --format '{{.Names}}'); for volume_name in $(docker volume ls --format '{{.Name}}');
do do
for docker_container_name in $(docker ps -a --filter volume=$volume_name --format '{{.Names}}');
do
echo "stop container: $docker_container_name" && docker stop "$docker_container_name" echo "stop container: $docker_container_name" && docker stop "$docker_container_name"
for source_path in $(docker inspect --format '{{ range .Mounts }}{{ if eq .Type "volume" }}{{ println .Destination }}{{ end }}{{ end }}' "$docker_container_name"); for source_path in $(docker inspect --format '{{ range .Mounts }}{{ if eq .Type "volume" }}{{ println .Destination }}{{ end }}{{ end }}' "$docker_container_name");
do do
@ -26,4 +30,5 @@ do
rsync -abP --delete --delete-excluded --log-file=$log_path --backup-dir=$backup_dir_path '$source_path/' $destination_path"; rsync -abP --delete --delete-excluded --log-file=$log_path --backup-dir=$backup_dir_path '$source_path/' $destination_path";
done done
echo "start container: $docker_container_name" && docker start "$docker_container_name"; echo "start container: $docker_container_name" && docker start "$docker_container_name";
done
done done