mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-10-10 04:42:09 +02:00
Skip mount points during backup and clean install
Prevent accidental deletion or backup of mount points: - In create_backup(), skip paths that are mount points with a warning - In _deploy_source_tarball(), _deploy_unpacked_archive(), and fetch_and_deploy_from_url(), use find with mountpoint pruning to avoid deleting mount point directories during CLEAN_INSTALL
This commit is contained in:
+7
-3
@@ -1336,6 +1336,10 @@ create_backup() {
|
|||||||
msg_warn "Skipping backup of '${path}' (not found)"
|
msg_warn "Skipping backup of '${path}' (not found)"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
if mountpoint -q "$path" 2>/dev/null; then
|
||||||
|
msg_warn "Skipping backup of '${path}' (is a mount point)"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
dest="${store}/files${path}"
|
dest="${store}/files${path}"
|
||||||
if ! mkdir -p "$(dirname "$dest")" || ! cp -a "$path" "$dest"; then
|
if ! mkdir -p "$(dirname "$dest")" || ! cp -a "$path" "$dest"; then
|
||||||
msg_error "Backup of '${path}' failed - aborting update"
|
msg_error "Backup of '${path}' failed - aborting update"
|
||||||
@@ -2538,7 +2542,7 @@ _deploy_source_tarball() {
|
|||||||
|
|
||||||
mkdir -p "$target"
|
mkdir -p "$target"
|
||||||
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
||||||
find "${target:?}" -mindepth 1 -delete
|
find "${target:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -delete
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tar --no-same-owner -xzf "$tarball" -C "$workdir" || {
|
tar --no-same-owner -xzf "$tarball" -C "$workdir" || {
|
||||||
@@ -2627,7 +2631,7 @@ _deploy_unpacked_archive() {
|
|||||||
# was truncated, the archive was unreadable, or it unpacked to nothing.
|
# was truncated, the archive was unreadable, or it unpacked to nothing.
|
||||||
mkdir -p "$target"
|
mkdir -p "$target"
|
||||||
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
||||||
find "${target:?}" -mindepth 1 -delete
|
find "${target:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -delete
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! cp -r "$source_dir"/* "$target/"; then
|
if ! cp -r "$source_dir"/* "$target/"; then
|
||||||
@@ -9368,7 +9372,7 @@ fetch_and_deploy_from_url() {
|
|||||||
mkdir -p "$directory"
|
mkdir -p "$directory"
|
||||||
|
|
||||||
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
||||||
find "${directory:?}" -mindepth 1 -delete
|
find "${directory:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -delete
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local unpack_tmp
|
local unpack_tmp
|
||||||
|
|||||||
Reference in New Issue
Block a user