geneon
Goto Top

Help Page für bash machen

Hey ich nochmal! ;)

und jetzt wird es aber kompliezierter!!!

und zwar hat ich folgendes problem!

ich habe einen bash geschrieben der nachschaut wieviel speicherplatz ich noch auf meiner festplatte habe und schickt mir dann die Prozentzahl via mail!

so etz will ich aber wenn ich den bash aufruf den die Parameter geben lassen die ich brauche!

Des sind dann die Parameter:

1. auf welcher partiotion er warnen soll
2. ab wieviel Prozent er warnen soll
3. an welche adresse er es schicken soll

soll ungefähr so ausschauen:

mail.sh -hda2 -10% -mail@localhost.localdomain

ach ja und wenn jemand keine parameter angibt gibt er ein fehler aus und beendet den bash!

Danke im vorraus!

Content-ID: 45090

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

Ausgedruckt am: 14.11.2024 um 13:11 Uhr

catmin
catmin 22.11.2006 um 13:51:57 Uhr
Goto Top
machs eher so:

mail.sh -d hda2 -p 10% -m mail@localhost.localdomain
geneon
geneon 22.11.2006 um 13:54:30 Uhr
Goto Top
Danke für die Antwort aber ich werde daraus nciht schlau!

mein ziel ist es ja zu sagen das wenn das "-m mail@localhost.localdomain" kommt das er das dann in einer varible speichert und ich es dann in meinem bash verwenden kann!
AxelHahn
AxelHahn 22.11.2006 um 13:54:36 Uhr
Goto Top
Hi,

ich habe einen bash geschrieben der
nachschaut wieviel speicherplatz ich noch auf
meiner festplatte habe und schickt mir dann
die Prozentzahl via mail!

Es ist unklar, welche Problemstellung existiert. Poste doch mal, was du bereits hast.

- Plattenplatz feststellen: df -k
- Abfangen der Parameter-Anzahl:
if [ $# -ne 3 ]; then
echo Fehler: 3 Parameter sind erforderlich ...
fi
- Parameter hast du mit ${1} ... ${n} - wenn du eine fixe Reihenfolge vorgeben möchtest, solltest du zu Beginn die Parameter in sprechende Variablen packen.


Viele Grüsse
-= Axel =-
geneon
geneon 22.11.2006 um 13:57:34 Uhr
Goto Top
Danke

aber des is ja nur des das wenn jemand ncihts eingibt dann kommt der fehler!

aber wie weise ich die parameter zu :?

mein Bash:

aram=`free | head -n2 | tail -n1 | awk '{print $4}'`
echo "$aram"
if [ "$aram" -lt 100 ]
then echo Mail wird verschickt
echo "Es sind nur noch $aram KB an Ram frei" | mail root@localhost.localdomain -s *CRITICAL*
else echo Mail wird nicht verschickt
echo "Es sind noch $aram KB an Ram frei" | mail root@localhost.localdomain -s *NOPROBLEM*

fi

hdafree=`df -h | head -n2 | awk '{print $5}'`
hdafree=`echo $hdafree | awk '{print $2}' | awk -F\% '{print $1}'`
echo $hdafree
if [ "$hdafree" -lt 10 ]
then echo Mail wird verschickt
echo "Es sind nur noch $hdafree an Plattenplatz frei" |mail root@localhost.localdomain -s *CRITICAL*
else echo Mail wird nicht verschickt
echo "Es sind noch $hdafree an Plattenplatz frei" | mail root@localhost.localdomain -s *NOPROBLEM*
fi
catmin
catmin 22.11.2006 um 14:00:26 Uhr
Goto Top
$1 ... erster parameter
$2 ... zweiter parameter
...

$# ... anzahl der parameter

vielleicht ist es das was du brauchst?
geneon
geneon 22.11.2006 um 14:02:15 Uhr
Goto Top
und wie kann ich die parameter zuweisen?
AxelHahn
AxelHahn 22.11.2006 um 14:05:26 Uhr
Goto Top
wie ich bei Abfangen der Parameter-Anzahl (ein exit muss natürlich noch rein):
if [ $# -ne 3 ]; then
   echo Fehler: 3 Parameter sind erforderlich
   echo ... mehr Text ...
   exit
fi

partition=${1}
minfree=${2}
mailto=${3}

... in deinem nachfolgenden Code kannst du dann die Variablennamen ansprechen, z.B.

df -k | grep "^${partition}"  

Viele Grüsse
-= Axel =-
geneon
geneon 22.11.2006 um 14:11:27 Uhr
Goto Top
sieht gut aus danke werd mich gleich ranmachen!
geneon
geneon 22.11.2006 um 14:22:38 Uhr
Goto Top
Super hat funktioniert lieben lieben dank!

aber eins hab ich noch wie mach ich das wenn ich den parameter " --help " eingebe dann so eine art manpage kommt?
ach und diese art "manpage" würde ich gern selber schreiben!^^

Also wenn es geht! Aber ich glaub hier bin ich genau richtig wenn ich unmögliches möglich machen will!