From d555d82ffd4d41c4ad9ce31576598f82f867f6ea Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 8 Aug 2026 16:56:23 +0200 Subject: [PATCH] add start and finish backup run info --- src/backup | 5 +- tests/backup_tests.bats | 153 ++++++++++++++++++++++------------------ 2 files changed, 90 insertions(+), 68 deletions(-) diff --git a/src/backup b/src/backup index ee32e83..8fbac70 100755 --- a/src/backup +++ b/src/backup @@ -256,7 +256,7 @@ get_backup_count() backup_path=$(echo "$config" | jq --raw-output '.backup_path') backup_name=$(echo "$config" | jq --raw-output '.backup_name') - find "$backup_path" -maxdepth 1 -type d \ + find "$backup_path" -maxdepth 1 -type d 2> /dev/null\ | grep --count "$backup_name" \ || return 0 } @@ -325,6 +325,8 @@ main() backup_dir=$(get_backup_dir "$config" "$last_backup_dir_path") echo "ℹ️ INFO: backup folder $backup_dir" create_backup_dir "$config" "$backup_dir" + + echo "💾 START: backup run" backup_machines "$config" \ "$backup_dir" \ "$last_backup_dir_path" \ @@ -336,6 +338,7 @@ main() echo "ℹ️ INFO: backup count: $backup_count" cleanup_old_backups "$config" \ "$backup_count" + echo "🏁 FINISH: backup run" echo "✅ SUCCESS: backup" } diff --git a/tests/backup_tests.bats b/tests/backup_tests.bats index 06315d1..f216b0a 100755 --- a/tests/backup_tests.bats +++ b/tests/backup_tests.bats @@ -31,13 +31,7 @@ teardown() { unset RSYNC_LOG } -@test "backup run success" { - run main - - assert_success -} - -@test "show start message" { +@test "success start message" { run main assert_success @@ -196,8 +190,10 @@ teardown() { assert_line --index 1 "ℹ️ INFO: backup path build" assert_line --index 2 "ℹ️ INFO: backup name backup" assert_line --index 3 "ℹ️ INFO: backup count 15" - assert_line --index 5 "ℹ️ INFO: backup count: 0" - assert_line --index 6 "✅ SUCCESS: backup" + assert_line --index 5 "💾 START: backup run" + assert_line --index 6 "ℹ️ INFO: backup count: 0" + assert_line --index 7 "🏁 FINISH: backup run" + assert_line --index 8 "✅ SUCCESS: backup" } @test "success last backup dir path info" { @@ -222,8 +218,10 @@ teardown() { assert_line --index 2 "ℹ️ INFO: backup name backup" assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: last backup dir path build/2000-01-01_01_backup" - assert_line --index 6 "ℹ️ INFO: backup count: 1" - assert_line --index 7 "✅ SUCCESS: backup" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: backup count: 1" + assert_line --index 8 "🏁 FINISH: backup run" + assert_line --index 9 "✅ SUCCESS: backup" } @test "success new backup folder info" { @@ -245,8 +243,10 @@ teardown() { assert_line --index 2 "ℹ️ INFO: backup name backup" assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" - assert_line --index 5 "ℹ️ INFO: backup count: 0" - assert_line --index 6 "✅ SUCCESS: backup" + assert_line --index 5 "💾 START: backup run" + assert_line --index 6 "ℹ️ INFO: backup count: 0" + assert_line --index 7 "🏁 FINISH: backup run" + assert_line --index 8 "✅ SUCCESS: backup" } @test "success new backup folder with number 02 info" { @@ -270,8 +270,10 @@ teardown() { assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: last backup dir path build/2000-01-01_01_backup" assert_line --index 5 "ℹ️ INFO: backup folder 2000-01-01_02_backup" - assert_line --index 6 "ℹ️ INFO: backup count: 1" - assert_line --index 7 "✅ SUCCESS: backup" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: backup count: 1" + assert_line --index 8 "🏁 FINISH: backup run" + assert_line --index 9 "✅ SUCCESS: backup" rmdir "build/2000-01-01_01_backup" } @@ -292,8 +294,10 @@ teardown() { assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup" - assert_line --index 6 "ℹ️ INFO: backup count: 1" - assert_line --index 7 "✅ SUCCESS: backup" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: backup count: 1" + assert_line --index 8 "🏁 FINISH: backup run" + assert_line --index 9 "✅ SUCCESS: backup" [ -d "build/2000-01-01_01_backup" ] } @@ -316,8 +320,10 @@ teardown() { assert_line --index 4 "ℹ️ INFO: last backup dir path build/2000-01-01_35_backup" assert_line --index 5 "ℹ️ INFO: backup folder 2000-01-01_36_backup" assert_line --index 6 "ℹ️ INFO: create folder build/2000-01-01_36_backup" - assert_line --index 7 "ℹ️ INFO: backup count: 2" - assert_line --index 8 "✅ SUCCESS: backup" + assert_line --index 7 "💾 START: backup run" + assert_line --index 8 "ℹ️ INFO: backup count: 2" + assert_line --index 9 "🏁 FINISH: backup run" + assert_line --index 10 "✅ SUCCESS: backup" [ -d "build/2000-01-01_36_backup" ] rmdir "build/2000-01-01_35_backup" rmdir "build/2000-01-01_36_backup" @@ -342,8 +348,10 @@ teardown() { assert_line --index 4 "ℹ️ INFO: last backup dir path build/1999-12-31_35_backup" assert_line --index 5 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 6 "ℹ️ INFO: create folder build/2000-01-01_01_backup" - assert_line --index 7 "ℹ️ INFO: backup count: 2" - assert_line --index 8 "✅ SUCCESS: backup" + assert_line --index 7 "💾 START: backup run" + assert_line --index 8 "ℹ️ INFO: backup count: 2" + assert_line --index 9 "🏁 FINISH: backup run" + assert_line --index 10 "✅ SUCCESS: backup" [ -d "build/2000-01-01_01_backup" ] rmdir "build/1999-12-31_35_backup" rmdir "build/2000-01-01_01_backup" @@ -366,11 +374,13 @@ teardown() { assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup" - assert_line --index 6 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" - assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc2" - assert_line --index 8 "ℹ️ INFO: create directory build/2000-01-01_01_backup/onlylocal" - assert_line --index 9 "ℹ️ INFO: backup count: 1" - assert_line --index 10 "✅ SUCCESS: backup" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" + assert_line --index 8 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc2" + assert_line --index 9 "ℹ️ INFO: create directory build/2000-01-01_01_backup/onlylocal" + assert_line --index 10 "ℹ️ INFO: backup count: 1" + assert_line --index 11 "🏁 FINISH: backup run" + assert_line --index 12 "✅ SUCCESS: backup" [ -d "build/2000-01-01_01_backup" ] [ -d "build/2000-01-01_01_backup/testpc1" ] [ -d "build/2000-01-01_01_backup/testpc2" ] @@ -392,23 +402,25 @@ teardown() { assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup" - assert_line --index 6 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" - assert_line --index 7 "################################################################################" - assert_line --index 8 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/etc${RESET}" - assert_line --index 9 "################################################################################" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" + assert_line --index 8 "################################################################################" + assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/etc${RESET}" assert_line --index 10 "################################################################################" - assert_line --index 11 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}" - assert_line --index 12 "################################################################################" - assert_line --index 13 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc2" - assert_line --index 14 "################################################################################" - assert_line --index 15 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc2${RESET}; path ${YELLOW}/home/other${RESET}" - assert_line --index 16 "################################################################################" - assert_line --index 17 "ℹ️ INFO: create directory build/2000-01-01_01_backup/onlylocal" - assert_line --index 18 "################################################################################" - assert_line --index 19 "ℹ️ INFO: machine ${LIGHTPURPLE}onlylocal${RESET}; path ${YELLOW}/home/local${RESET}" - assert_line --index 20 "################################################################################" - assert_line --index 21 "ℹ️ INFO: backup count: 1" - assert_line --index 22 "✅ SUCCESS: backup" + assert_line --index 11 "################################################################################" + assert_line --index 12 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}" + assert_line --index 13 "################################################################################" + assert_line --index 14 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc2" + assert_line --index 15 "################################################################################" + assert_line --index 16 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc2${RESET}; path ${YELLOW}/home/other${RESET}" + assert_line --index 17 "################################################################################" + assert_line --index 18 "ℹ️ INFO: create directory build/2000-01-01_01_backup/onlylocal" + assert_line --index 19 "################################################################################" + assert_line --index 20 "ℹ️ INFO: machine ${LIGHTPURPLE}onlylocal${RESET}; path ${YELLOW}/home/local${RESET}" + assert_line --index 21 "################################################################################" + assert_line --index 22 "ℹ️ INFO: backup count: 1" + assert_line --index 23 "🏁 FINISH: backup run" + assert_line --index 24 "✅ SUCCESS: backup" } @test "failure backup machine pathes is null" { @@ -432,8 +444,9 @@ teardown() { assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup" - assert_line --index 6 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" - assert_line --index 7 "❌ ERROR: missing pathes for machine testpc1" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" + assert_line --index 8 "❌ ERROR: missing pathes for machine testpc1" } @test "failure backup machine path no remote user" { @@ -459,10 +472,11 @@ teardown() { assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup" - assert_line --index 6 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" - assert_line --index 7 "################################################################################" - assert_line --index 8 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}" - assert_line --index 9 "❌ ERROR: missing remote user for testpc1" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" + assert_line --index 8 "################################################################################" + assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}" + assert_line --index 10 "❌ ERROR: missing remote user for testpc1" } @test "failure backup machine path no host" { @@ -489,10 +503,11 @@ teardown() { assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup" - assert_line --index 6 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" - assert_line --index 7 "################################################################################" - assert_line --index 8 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}" - assert_line --index 9 "❌ ERROR: missing host for testpc1" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" + assert_line --index 8 "################################################################################" + assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}" + assert_line --index 10 "❌ ERROR: missing host for testpc1" } @test "failure backup machine path no port" { @@ -520,10 +535,11 @@ teardown() { assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup" - assert_line --index 6 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" - assert_line --index 7 "################################################################################" - assert_line --index 8 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}" - assert_line --index 9 "❌ ERROR: missing port for testpc1" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" + assert_line --index 8 "################################################################################" + assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}" + assert_line --index 10 "❌ ERROR: missing port for testpc1" } @test "success backup machine path excludes info" { @@ -536,11 +552,12 @@ teardown() { assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup" - assert_line --index 6 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" - assert_line --index 7 "################################################################################" - assert_line --index 8 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/etc${RESET}" - assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; excludes /home/user/.cache /home/user/.local" - assert_line --index 10 "################################################################################" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" + assert_line --index 8 "################################################################################" + assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/etc${RESET}" + assert_line --index 10 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; excludes /home/user/.cache /home/user/.local" + assert_line --index 11 "################################################################################" assert_line --partial "✅ SUCCESS: backup" } @@ -572,12 +589,14 @@ teardown() { assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup" - assert_line --index 6 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" - assert_line --index 7 "################################################################################" - assert_line --index 8 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}" - assert_line --index 9 "################################################################################" - assert_line --index 10 "ℹ️ INFO: backup count: 1" - assert_line --index 11 "✅ SUCCESS: backup" + assert_line --index 6 "💾 START: backup run" + assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1" + assert_line --index 8 "################################################################################" + assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}" + assert_line --index 10 "################################################################################" + assert_line --index 11 "ℹ️ INFO: backup count: 1" + assert_line --index 12 "🏁 FINISH: backup run" + assert_line --index 13 "✅ SUCCESS: backup" } @test "success backup machine path rsync parameters" { -- 2.47.3