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 'Собираю конфигурацию...')"