Hallo,
ich habe mir ein kleines Skript geschrieben, in dem aber zwei Umleitungen in eine Datei nicht funktionieren.
Das Skript läuft auf einem älteren NAS (TS-109 PRO II, Firmwareversion: 3.3.3 Build 1003T), das einen anderen Server sichert. Es ist jeweils einmal mit dem Parameter monthly, weekly und daily als Cronjob eingetragen. Es führt dann rsnapshot aus und stellt danach abhängig vom Errorlevel Daten für eine Email zusammen und verschickt diese. Wöchentlich wird nach daily in jedem Fall eine Email verschickt.
Das klappt auch soweit, nur wird weder die Ausgabe des Smart Status über smartctl noch die des Dateivergleichs über comm in die Ausgabedatei geschrieben. Der Header und die Ausgabe des Disk Space über df wird korrekt in die Datei geschrieben und die Email wird auch verschickt. Teste ich die Befehle auf der Kommandozeile klappt es, auch mit Umleitung in die Datei.
Hat hier zufällig jemand eine Idee, woran das liegen könnte?
#!/bin/sh
# Start rsnapshot and send email
# 18.11.2016
# variables
day_email_weekly=1
file_email=~/rsnapshot_email.txt
# start rsnapshot
#/opt/bin/rsnapshot $1
# no error in rsnapshot
if [ $? -eq 0 ] ; then
# send email on specified weekday after daily interval
if [ "$(date +%w)" == "$day_email_weekly" ] && [ "$1" == "daily" ] ; then
# generate email header
echo Subject: Rsnapshot Report >$file_email
echo From: '"Vanadar" <vanadar@donotreply.com>' >> $file_email
echo To: '"Vanadar" <vanadar@donotreply.com>' >> $file_email
echo >> $file_email
# Smart Status
smartctl -H /dev/sda | grep Health >> $file_email
echo >> $file_email
# Disk Space
df -h | grep -v qpkg | grep DATA >> $file_email
echo >> $file_email
# New lines since last email from log
comm -3 --nocheck-order /var/log/rsnapshot.log /var/log/rsnapshot_email.log >> $file_email
# send email
cat $file_email 2>>&1 | /mnt/ext/usr/sbin/sendmail -t
# save sent entries in log to be able to compare next time
cp /var/log/rsnapshot.log ~/rsnapshot_email.log
fi
# error in rsnapshot
else
# generate email header
echo Subject: Rsnapshot ERROR > $file_email 2>>&1
echo From: '"Vanadar" <vanadar@donotreply.com>' >> $file_email
echo To: '"Vanadar" <vanadar@donotreply.com>' >> $file_email
echo >> $file_email
# Smart Status
smartctl -H /dev/sda | grep Health >> $file_email
echo >> $file_email
# Disk Space
df -h | grep -v qpkg | grep DATA >> $file_email
echo >> $file_email
# New lines since last email from log
comm -3 --nocheck-order /var/log/rsnapshot.log /var/log/rsnapshot_email.log >> $file_email
# send email
cat $file_email 2>>&1 | /mnt/ext/usr/sbin/sendmail -t
# save sent entries in log to be able to compare next time
cp /var/log/rsnapshot.log ~/rsnapshot_email.log
fi
Alles anzeigen