master
Sergey Marinkevich 7 months ago
parent 8dc1ec73ae
commit e443a74d53

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

Loading…
Cancel
Save