fenris14
Goto Top

Letzte Zeile lesen und einfügen

Guten Tag,

ich versuche mich mal wieder ein wenig an Scripten und habe hier jetzt das Problem das ich versuche meinen Mail-Report etwas zu ordnen. Folgende Situation:

Ich habe 3 Backups mit jeweils einer Log-Datei. Diese sind einzelnd als Script mit Rsync realisiert. Nun habe ich es bisher immer so gemacht das ich ein kleines Script für den Email-Versand hatte, wo dann die Log-Dateien der Backups einfach nur angehangen wurden. Jetzt habe ich meine Backup-Scripte so geschrieben das am Ende jedes Logs ein "OK" oder ein "Fehler beim Backup" heraus kommt. Jetzt würde ich es gerne so hinbekommen das ich diese Zeile auslese und in den Mail-Report packe, anstatt das komplette Log mitzusenden.

Was verwendet man dann am besten? grep, cat, cut oder awk?
#!/bin/bash
#Variablen
MAILTEXT="./mail.txt"  
EMAIL="mustermann@mail.de"  
Backup1="/var/log/backup1.log"  
Backup2="/var/log/backup2.log"  
Backup3="/var/log/Backup3.log"  
## ##

#Festplattennutzung
echo -e "---- Filesystem ----">>"$MAILTEXT"  
echo -e >> "$MAILTEXT"  
echo -e >> "$MAILTEXT"  
df -h>>"$MAILTEXT"  

echo -e >> "$MAILTEXT"  
echo -e >> "$MAILTEXT"  
echo -e >> "$MAILTEXT"  
echo -e >> "$MAILTEXT"  

#RAID STATUS
echo -e "---- Raid-Status ----">>"$MAILTEXT"  
echo -e >> "$MAILTEXT"  
echo -e >> "$MAILTEXT"  
cat /proc/mdstat>>"$MAILTEXT"  

echo -e >> "$MAILTEXT"  
echo -e >> "$MAILTEXT"  
echo -e >> "$MAILTEXT"  

#Mail versenden
cat "$MAILTEXT" "$Backup1" "$Backup2" "$Backup3" | mail -s "Report" $EMAIL  

#Mail wieder löschen
rm "$MAILTEXT"  

echo 0

Es wird sozusagen eine Text-Datei erstellt und diese wird mit diversen Ausgaben gefüttert, danach per Mail versendet und wieder gelöscht. Was müsste ich jetzt tun damit die letzte Zeile der Logs ebenfalls in diese Text-Datei geschrieben werden?

Danke im voraus.

Gruß

Content-Key: 294827

Url: https://administrator.de/contentid/294827

Printed on: April 19, 2024 at 04:04 o'clock

Mitglied: 126919
Solution 126919 Feb 01, 2016 updated at 10:45:53 (UTC)
Goto Top
tail -n 1 /datei.log >>/zusammenfassung.log

fk
Member: Fenris14
Fenris14 Feb 01, 2016 at 09:58:04 (UTC)
Goto Top
Ok das scheint schonmal zu funktionieren. Danke schonmal.

Aber nur zum Verständnis... wenn ich folgendes schreibe:

echo -e "Backup1: " | tail -n1 "$Backup1">>"$MAILTEXT"  

... dann wird nur ein OK ausgegeben. Wieso wird der Befehl des Echo nicht ausgeführt und übernommen?
Mitglied: 126919
126919 Feb 01, 2016 updated at 10:32:11 (UTC)
Goto Top
echo "Backup1: $(tail -n1 $Backup1)" >>"$MAILTEXT"  
Member: Fenris14
Fenris14 Feb 01, 2016 at 10:30:51 (UTC)
Goto Top
Ich habe mal die beiden einfachen Anführungszeichen bei der Variable "$Backup1" weggelassen, damit funktioniert es. Mit den Anführungszeichen steht dann nichts hinter "Backup1:"