From d492e5eb69af2eb39535c9fa542a406d71f012d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D1=82=D0=B0=D0=BB=D0=B8=D0=B9=20=D0=9B=D0=B8?= =?UTF-8?q?=D1=82=D0=B2=D0=B8=D0=BD=D0=BE=D0=B2?= Date: Sat, 25 Apr 2026 14:47:34 +0300 Subject: [PATCH] v2.5.0: make backup names collision safe --- lib/backup.sh | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/backup.sh b/lib/backup.sh index 7b40bb1..e127d9f 100755 --- a/lib/backup.sh +++ b/lib/backup.sh @@ -7,10 +7,24 @@ create_backup() { local output_dir="${2:-$BACKUP_DIR}" local timestamp timestamp=$(date +%Y%m%d_%H%M%S) - local backup_name="gotelegram_backup_${timestamp}" - local tmp_dir="/tmp/${backup_name}" + local backup_name tmp_dir suffix=0 - mkdir -p "$tmp_dir" "$output_dir" + mkdir -p "$output_dir" + while true; do + if [ "$suffix" -eq 0 ]; then + backup_name="gotelegram_backup_${timestamp}" + else + backup_name="gotelegram_backup_${timestamp}_${suffix}" + fi + tmp_dir="/tmp/${backup_name}" + if [ ! -e "$tmp_dir" ] && \ + [ ! -e "${output_dir}/${backup_name}.tar.gz" ] && \ + [ ! -e "${output_dir}/${backup_name}.tar.gz.enc" ]; then + break + fi + suffix=$((suffix + 1)) + done + mkdir -p "$tmp_dir" # Собираем файлы log_info "$(_t_or backup_collecting 'Собираю конфигурацию...')"