2017-10-25 2 views
0

Ich habe folgendes Skript geschrieben und es zeigt einige unnötige Dateien, wenn ich es ausführe. Ich möchte nur den Befehl ausführen und nur die Warnungen erhalten. das Skript folgt alsLinux Skript zeigt unnötige Dateien

df -h | nawk '/backup/ {print $5 " " $6}' | while read line; 
    do 
     usep=$(echo $line | nawk '{printf "%d", $1}')  
     partition=$(echo $line | nawk '{print $2}') 
     if (($usep >= 90)); then 
       echo "$partition ($usep%)" | mailx -s "172.27.68.101" [email protected]; 
       echo "$partition ($usep%)" | mailx -s "172.27.68.101" [email protected]; 
     echo "$partition ($usep%)" | mailx -s "172.27.68.101" [email protected]; 
     fi 
    done 

Follwing Bild, um das Ausgangsproblem zeigt

enter image description here

Wie kann ich mehrere Empfänger zu diesem Skript hinzufügen, ohne solche Verzeichnisse zu öffnen?

+0

Haben Sie versuchen Sie Skript in einer Bash-Datei hinzufügen und ausführen? – sys0dm1n

+0

Eigentlich möchte ich dies in ein Skript einfügen und als Cronjob ausführen. Bevor ich das Skript eingegeben habe, habe ich es direkt versucht, als ich die Frage gepostet habe. Da ich neu bei Linux bin verstehe ich nicht, warum es dieses Verzeichnis öffnet, wenn ich mehr Echolinien hinzufügen – Amal

Antwort

3

Um eine mehrzeilige bash Code in Terminal einfügen, fügen Klammern um die Leitungen andernfalls jede Zeile als separater Befehl ausgeführt wird, sobald es aufgeklebt wird:

(df -h | nawk '/backup/ {print $5 " " $6}' | while read line; do 
    usep=$(echo "$line" | nawk '{printf "%d", $1}') 
    partition=$(echo $line | nawk '{print $2}') 
    if(("$usep" >= 90)) ; then echo "$partition ($usep%)" | mailx -s "172.27.68.101" [email protected]; 
     echo "$partition ($usep%)" | mailx -s "172.27.68.101" [email protected]; 
     echo "$partition ($usep%)" | mailx -s "172.27.68.101" [email protected]; 
    fi 
done) 
+0

Thanx. Aber ich habe immer noch das gleiche Problem. – Amal

+0

Können Sie uns einen Screenshot des Ergebnisses zeigen, indem Sie Klammern um die Zeilen hinzufügen? – sys0dm1n

+0

Diese Methode funktioniert perfekt. Ich habe früher einen Fehler gemacht. – Amal

0

Zum einen Befehl df -h|grep backup|sed 's/\%//g'|awk '$5 >= 90 {print $5"% "$6}' für FS mit (Partition) mehr als 90% Nutzung. Der Rest des Befehls, um Trought Mail zu alarmieren. Dann:

df -h|grep backup|sed 's/\%//g'|awk '$5 >= 90 {print $5"% "$6}'|while read USAGE PARTITION do echo "$PARTITION ($USAGE)"|mailx -s "172.27.68.101" "[email protected],[email protected]" done

+0

Sie sollten Ihre Antwort genauer erklären? Auch - wie ist das anders/besser als die vorherige Antwort? –

+0

Hallo @DerekBrown – donaldgavis

+0

Hallo @DerekBrown zuerst 'df -h | grep Sicherung | sed 's/\% // g' | awk '$ 5> = 90 {print $ 5"% "$ 6}'' für FS mehr als 90 % Verwendung. der Rest des Befehls, um die Post zu alarmieren. – donaldgavis

Verwandte Themen