master
Sergey Marinkevich 6 months ago
parent 8dc1ec73ae
commit e443a74d53

@ -137,12 +137,14 @@ count_files() {
local count=0
for dir in "${src_dirs[@]}"; do
local find_cmd=(find "$dir" -xdev)
local find_cmd=(find . -xdev)
if [[ ${#exclude_args[@]} -gt 0 ]]; then
find_cmd+=(\( "${exclude_args[@]}" -prune \) -o -print)
fi
pushd "$dir"
count=$((count + $("${find_cmd[@]}" | wc -l)))
done
popd
done >/dev/null
echo "$count"
}
@ -155,19 +157,21 @@ run_rsync_backup() {
echo "Starting backup..."
local rsync_opts=("-Aavx")
for e in "${exclude_paths[@]}"; do
rsync_opts+=("--exclude=$e")
done
if [[ -n "$exclude_file" ]]; then
rsync_opts+=("--exclude-from=$exclude_file")
fi
for dir in "${src_dirs[@]}"; do
base="$(basename "$dir")"
dest_dir="$dest_path/$base"
rsync "${rsync_opts[@]}" "$dir"/ "$dest_dir"/ | pv -ltps "$file_count" > /dev/null
done
local base="$(basename "$dir")"
local dest_dir="$dest_path/$base"
local rsync_opts=("-aAvx")
rsync_opts+=("--delete")
for e in "${exclude_paths[@]}"; do
rsync_opts+=("--exclude=$e")
done
if [[ -n "$exclude_file" ]]; then
rsync_opts+=("--exclude-from=$exclude_file")
fi
rsync "${rsync_opts[@]}" "$dir"/ "$dest_dir"/
done | pv -ltps "$file_count" > /dev/null
echo "Rsync completed."
}
@ -229,7 +233,7 @@ main() {
local exclude_args=()
for e in "${EXCLUDE_PATHS[@]}"; do
exclude_args+=( -path "$e" -o )
exclude_args+=( -path "./$e" -o )
done
if [[ -n "$EXCLUDE_FILE" ]]; then
while IFS= read -r line || [[ -n "$line" ]]; do

Loading…
Cancel
Save