:
}
+ListDirectory() {
+ local base_dir="$1"
+ local dir_name="$2"
+
+ local exclude
+
+ exclude='total | .$| ..$'
+ if [[ "$dir_name" == "/" ]]; then
+ exclude="$exclude"'| \.stamp$| dev$| etc$| root$| run$| tmp$'
+ exclude="$exclude"'| data$| srv$'
+ exclude="$exclude"'| [[:alnum:]_-]+\.log(\.[[:alnum:]]+|)$'
+ fi
+
+ # shellcheck disable=SC2012
+ ls -al "$base_dir$dir_name" 2>/dev/null \
+ | egrep -v "($exclude)"
+}
+
HandleSystem() {
local fname="$1"
/etc/gshadow \
\
/boot/grub/grub.cfg \
+ /etc/aliases \
/etc/bash.bashrc \
+ /etc/crontab \
+ /etc/environment \
/etc/fstab \
/etc/hostname \
/etc/hosts \
+ /etc/hosts.allow \
+ /etc/hosts.deny \
+ /etc/inittab \
+ /etc/ld.so.conf \
+ /etc/login.defs \
/etc/machine-id \
/etc/modules \
/etc/network/interfaces \
/etc/rc.local \
/etc/resolv.conf \
/etc/services \
+ /etc/shells \
+ /etc/ssh/sshd_config \
+ /etc/sshd_config \
/etc/sudoers \
/etc/sysctl.conf \
; do
fi
done
+ for dir in \
+ / \
+ /etc/cron.d/ \
+ /etc/cron.daily/ \
+ /etc/cron.hourly/ \
+ /etc/cron.monthly/ \
+ /etc/cron.weekly/ \
+ /etc/sudoers.d/ \
+ /var/log/dumps/ \
+ ; do
+ [[ ! -d "${gen1_d}${dir}" ]] && continue
+ [[ ! -d "${gen2_d}${dir}" ]] && continue
+
+ # Make sure that this is a system root; comparing other
+ # root folders results in misleading output ...
+ [[ "$dir" == "/" && ! -d "${gen1_d}${dir}/etc" ]] && continue
+
+ [[ $VERBOSE -ne 0 ]] && echo "Checking \"$dir\" ..."
+ ListDirectory "${gen1_d}" "${dir}" >"$tmp_1"
+ ListDirectory "${gen2_d}" "${dir}" >"$tmp_2"
+ diff -U 0 "$tmp_1" "$tmp_2" >"$tmp_diff"
+ if [[ $? -ne 0 ]]; then
+ BeginDiff "\"$dir\" directory"
+ tail -n +3 "$tmp_diff" | egrep -v '^@@ ' | PipeDiff
+ EndDiff
+ return_code=1
+ fi
+ done
+
if [[ -d "${gen1_d}/var/lib/dpkg/info" && -d "${gen2_d}/var/lib/dpkg/info" ]]; then
[[ $VERBOSE -ne 0 ]] && echo "Checking list of installed packages ..."
chroot "${gen1_d}" dpkg --get-selections >"$tmp_1" || return 2
shift
[[ $# -eq 2 ]] || Usage
MkTempFiles
- DiffGenerations "$default_backup_type" "$1/" "$2/" "$default_files"
+ DiffGenerations "$default_backup_type" "$1" "$2" "$default_files"
return_code=$?
CleanUp
exit $return_code