mirror of
https://github.com/kevinveenbirkenbach/docker-volume-backup.git
synced 2024-11-23 16:51:03 +01:00
Compare commits
5 Commits
b7dcb17fd5
...
8bc2b068ff
Author | SHA1 | Date | |
---|---|---|---|
8bc2b068ff | |||
25d428fc9c | |||
0077efa63c | |||
9d8e80f793 | |||
d2b699c271 |
@ -217,7 +217,10 @@ def is_image_ignored(container):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def backup_with_containers_paused(volume_name, volume_dir, containers, shutdown):
|
def backup_with_containers_paused(volume_name, volume_dir, containers, shutdown):
|
||||||
|
if containers:
|
||||||
stop_containers(containers)
|
stop_containers(containers)
|
||||||
|
else:
|
||||||
|
print(f"{volume_name} has no containers to stop. Skipped.")
|
||||||
backup_volume(volume_name, volume_dir)
|
backup_volume(volume_name, volume_dir)
|
||||||
|
|
||||||
# Just restart containers if shutdown is false
|
# Just restart containers if shutdown is false
|
||||||
@ -281,9 +284,6 @@ def main():
|
|||||||
for volume_name in volume_names:
|
for volume_name in volume_names:
|
||||||
print(f'Start backup routine for volume: {volume_name}')
|
print(f'Start backup routine for volume: {volume_name}')
|
||||||
containers = execute_shell_command(f"docker ps --filter volume=\"{volume_name}\" --format '{{{{.Names}}}}'")
|
containers = execute_shell_command(f"docker ps --filter volume=\"{volume_name}\" --format '{{{{.Names}}}}'")
|
||||||
if not containers:
|
|
||||||
print('Skipped due to no running containers using this volume.')
|
|
||||||
continue
|
|
||||||
if args.everything:
|
if args.everything:
|
||||||
backup_everything(volume_name, containers, args.shutdown)
|
backup_everything(volume_name, containers, args.shutdown)
|
||||||
else:
|
else:
|
||||||
|
@ -24,7 +24,19 @@ backup_sql="/$backup_folder/sql/$database_name.backup.sql"
|
|||||||
|
|
||||||
# DATABASE RECOVERY
|
# DATABASE RECOVERY
|
||||||
|
|
||||||
if [ -f "$backup_sql" ]; then
|
if [ ! -z "$database_type" ]; then
|
||||||
|
if [ "$database_type" = "postgres" ]; then
|
||||||
|
if [ -n "$database_container" ] && [ -n "$database_password" ] && [ -n "$database_name" ]; then
|
||||||
|
echo "Recover PostgreSQL dump"
|
||||||
|
export PGPASSWORD="$database_password"
|
||||||
|
cat "$backup_sql" | docker exec -i "$database_container" psql -v ON_ERROR_STOP=1 -U "$database_user" -d "$database_name"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "ERROR: Failed to recover PostgreSQL dump"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
elif [ "$database_type" = "mariadb" ]; then
|
||||||
if [ -n "$database_container" ] && [ -n "$database_password" ] && [ -n "$database_name" ]; then
|
if [ -n "$database_container" ] && [ -n "$database_password" ] && [ -n "$database_name" ]; then
|
||||||
echo "recover mysql dump"
|
echo "recover mysql dump"
|
||||||
cat "$backup_sql" | docker exec -i "$database_container" mariadb -u "$database_user" --password="$database_password" "$database_name"
|
cat "$backup_sql" | docker exec -i "$database_container" mariadb -u "$database_user" --password="$database_password" "$database_name"
|
||||||
@ -34,6 +46,7 @@ if [ -f "$backup_sql" ]; then
|
|||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
echo "A database backup exists, but a parameter is missing."
|
echo "A database backup exists, but a parameter is missing."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user