X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Fbackupninja.in;h=920d89e66f3fdc244c95c30d2b07ba8d51278ce5;hb=5eef842c2b297ded85d4f9e312f806f9c61153fb;hp=e4f5ea73dc53afd6084b5c6563240e0a14d6c0a1;hpb=90316a33524fe051cbe110904391f317df13a7ac;p=matthijs%2Fupstream%2Fbackupninja.git diff --git a/src/backupninja.in b/src/backupninja.in index e4f5ea7..920d89e 100755 --- a/src/backupninja.in +++ b/src/backupninja.in @@ -131,32 +131,40 @@ function msg { function check_perms() { local file=$1 + debug "check_perms $file" local perms - perms=($(stat -L --printf='%a %g %G %u %U' $file)) - local gperm=${perms[0]:1:1} - local wperm=${perms[0]:2:1} - local gid=${perms[1]} - local group=${perms[2]} - local owner=${perms[3]} + local owners + + perms=($(stat -L --format='%A' $file)) + debug "perms: $perms" + local gperm=${perms:4:3} + debug "gperm: $gperm" + local wperm=${perms:7:3} + debug "wperm: $wperm" + + owners=($(stat -L --format='%g %G %u %U' $file)) + local gid=${owners[0]} + local group=${owners[1]} + local owner=${owners[2]} if [ "$owner" != 0 ]; then echo "Configuration files must be owned by root! Dying on file $file" fatal "Configuration files must be owned by root! Dying on file $file" fi - if [ $wperm -gt 0 ]; then + if [ "$wperm" != '---' ]; then echo "Configuration files must not be world writable/readable! Dying on file $file" fatal "Configuration files must not be world writable/readable! Dying on file $file" fi - if [ $gperm -gt 0 ]; then + if [ "$gperm" != '---' ]; then case "$admingroup" in $gid|$group) :;; *) if [ "$gid" != 0 ]; then - echo "Configuration files must writable/readable by group ${perms[2]}! Dying on file $file" - fatal "Configuration files must writable/readable by group ${perms[2]}! Dying on file $file" + echo "Configuration files must not be writable/readable by group $group! Use the admingroup option in backupninja.conf. Dying on file $file" + fatal "Configuration files must not be writable/readable by group $group! Use the admingroup option in backupninja.conf. Dying on file $file" fi ;; esac @@ -426,6 +434,7 @@ setfile $conffile getconf configdirectory @CFGDIR@/backup.d getconf scriptdirectory @datadir@ getconf reportemail +getconf reportspace getconf reportsuccess yes getconf reportwarning yes getconf loglevel 3 @@ -526,6 +535,17 @@ if [ $doit == 1 ]; then echo ${messages[$i]} done echo -e "$errormsg" + if [ "$reportspace" == "yes" ]; then + previous="" + for i in $(ls "$configdirectory"); do + backuploc=$(grep ^directory "$configdirectory"/"$i" | awk '{print $3}') + if [ "$backuploc" != "$previous" ]; then + mountdev=$(mount | grep "$backuploc" | awk '{print $1}') + df -h "$mountdev" + previous="$backuploc" + fi + done + fi } | mail -s "backupninja: $hostname $subject" $reportemail fi