done
Usage() {
- echo "Usage: $NAME [-q|--quiet] [-v|--verbose] [<system> [<system> [...]]]"
+ echo "Usage: $NAME [-q|--quiet] [-v|--verbose] [<job> [<job> [...]]]"
echo " $NAME <-d|--dirs> <dir1> <dir2>"
echo
+ echo " -d, --dirs Compare two backup directories (not jobs)."
+ echo " -q, --quiet Quite mode, only list jobs with changes or errors."
+ echo " -v, --verbose Verbose mode, show all checks that are run."
+ echo
+ echo "When no <job> is given, all defined jobs are checked."
+ echo
exit 2
}
local exclude
- exclude='total | .$| ..$'
+ exclude='total '
if [[ "$dir_name" == "/" ]]; then
exclude="$exclude"'| \.stamp$| dev$| etc$| proc$| root$| run$| sys$| tmp$'
exclude="$exclude"'| data$| net$| srv$'
fi
# shellcheck disable=SC2012
- ls -al "$base_dir$dir_name" 2>/dev/null \
- | egrep -v "($exclude)"
+ ls -Al "$base_dir$dir_name" 2>/dev/null \
+ | egrep -v "($exclude)" | awk '!($2="")' | column -t
}
HandleSystem() {
[[ -r "${gen1_d}${file}" ]] || continue
[[ $VERBOSE -ne 0 ]] && echo "Checking \"$file\" ..."
- diff -U 3 "${gen1_d}${file}" "${gen2_d}${file}" >"$tmp_diff"
- if [[ $? -ne 0 ]]; then
+ if ! diff -U 3 "${gen1_d}${file}" "${gen2_d}${file}" >"$tmp_diff"; then
BeginDiff "\"$file\""
tail -n +3 "$tmp_diff" | PipeDiff
EndDiff
[[ $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
+ if ! diff -U 0 "$tmp_1" "$tmp_2" >"$tmp_diff"; then
BeginDiff "\"$dir\" directory"
tail -n +3 "$tmp_diff" | egrep -v '^@@ ' | PipeDiff
EndDiff
[[ $VERBOSE -ne 0 ]] && echo "Checking list of installed packages ..."
chroot "${gen1_d}" dpkg --get-selections >"$tmp_1" || return 2
chroot "${gen2_d}" dpkg --get-selections >"$tmp_2" || return 2
- diff -U 0 "$tmp_1" "$tmp_2" >"$tmp_diff"
- if [[ $? -ne 0 ]]; then
+ if ! diff -U 0 "$tmp_1" "$tmp_2" >"$tmp_diff"; then
BeginDiff "list of installed packages"
tail -n +3 "$tmp_diff" | grep -v '^@@ ' | PipeDiff
EndDiff
# scp Backup type
file=$(basename "$files")
[[ $VERBOSE -ne 0 ]] && echo "Checking \"$file\" ..."
- diff -U 3 "${gen1_d}/${file}" "${gen2_d}/${file}" >"$tmp_diff"
- if [[ $? -ne 0 ]]; then
+ if ! diff -U 3 "${gen1_d}/${file}" "${gen2_d}/${file}" >"$tmp_diff"; then
BeginDiff "\"$file\""
tail -n +3 "$tmp_diff" | PipeDiff
EndDiff
;;
esac
- HandleSystem "$fname" >"$tmp_out" 2>&1
- [[ $QUIET -eq 0 || $? -ne 0 ]] && cat "$tmp_out"
+ HandleSystem "$fname" >"$tmp_out" 2>&1; result=$?
+ [[ $QUIET -eq 0 || $result -ne 0 ]] && cat "$tmp_out"
done
CleanUp