From 612ea0abe7bb93627820a099903218836c0ee42f Mon Sep 17 00:00:00 2001 From: Alexander Sabino <32822107+asabino2@users.noreply.github.com> Date: Thu, 7 May 2026 11:26:33 +0100 Subject: [PATCH] Adiciona suporte condicional para a flag --ignore-failed-read no tar, permitindo tratamento adequado de avisos em backups --- src/backupService.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/backupService.js b/src/backupService.js index d695c0c..bbdf1f4 100644 --- a/src/backupService.js +++ b/src/backupService.js @@ -462,15 +462,19 @@ class BackupService { 'echo "__DBKP_TAR_BEGIN__" 1>&2', ]; + // --ignore-failed-read é extensão GNU tar — não existe no BusyBox tar (Alpine). + // Usar condicionalmente para evitar aborto silencioso com 0 bytes no arquivo. + const gnuFlags = hasGnuTar ? '--ignore-failed-read' : ''; + // GNU tar: exit 0 = ok, exit 1 = avisos (arquivos mudaram, permissão negada), exit 2 = erro fatal. // Aceitamos exit 1 como sucesso para não descartar archives válidos com avisos menores. if (backupScope === 'container') { tarParts.push( - `tar --ignore-failed-read ${tarIncrementalFlag} -czvf - -C / --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=tmp .; TAR_RC=$?; [ $TAR_RC -le 1 ] || exit $TAR_RC` + `tar ${gnuFlags} ${tarIncrementalFlag} -czvf - -C / --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=tmp .; TAR_RC=$?; [ $TAR_RC -le 1 ] || exit $TAR_RC` ); } else { tarParts.push( - `tar --ignore-failed-read ${tarIncrementalFlag} -czvf - -C / ${relSourcePaths.map((item) => shellQuote(item)).join(' ')}; TAR_RC=$?; [ $TAR_RC -le 1 ] || exit $TAR_RC` + `tar ${gnuFlags} ${tarIncrementalFlag} -czvf - -C / ${relSourcePaths.map((item) => shellQuote(item)).join(' ')}; TAR_RC=$?; [ $TAR_RC -le 1 ] || exit $TAR_RC` ); }