WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Linux, UNIX, Open Source (http://www.wcm.at/forum/forumdisplay.php?f=13)
-   -   bash script (http://www.wcm.at/forum/showthread.php?t=111566)

jorge 09.10.2003 13:50

bash script
 
@ alle scripting experten:

wie bringe ich linux dazu einen befehl wie z. B tar -tvf /dev/st0 für 5 minuten auszuführen, dann abzubrechen und trotzdem exit status 0 zu liefern.

danke + gruss
jorge :ms:

Mirddryn 09.10.2003 14:02

ich seh das problem nicht....
Code:

brian@BOFH [/cygdrive/c/unzipped]$ ./show
-rw-r--r-- brian/Domänen-Benutzer 44511 2003-10-08 09:06:22 dilbert-20030912.htm
l
0
brian@BOFH [/cygdrive/c/unzipped]$ cat show
#!/bin/bash.exe

tar -tvf dilbert.tar
echo $?
brian@BOFH [/cygdrive/c/unzipped]$

und mit cron sollte man doch noch halbwegs umgehn koennen (bezueglich den 5 minuten) ;P
wenn nicht:
Code:

$ crontab -e
dort dann folgendes eintragen:
Code:

*/5 * * * * /path/to/your/script
du kannst dann noch nach belieben folgendes dranhaengen um die ausgabe umzuleiten:
Code:

>/path/to/file.log 2>&1
dass ein space zwischen `/path/to/your/script' und `>/path/to/file.log 2>&1' sinnvoll, aber nicht unbedingt notwendig ist, ist glaub ich eh selbstverstaendlich.

cheers,
-mirddryn

jorge 09.10.2003 14:10

@ Mirddryn

...das ist mir schon klar....
aber...

Zitat:

wie bringe ich linux dazu einen befehl wie z. B tar -tvf /dev/st0 für 5 minuten auszuführen, dann abzubrechen und trotzdem exit status 0 zu liefern.
der befehl läuft innerhalb eines anderen scripts und ich will beim lesen des bandes nicht immer die komplette sicherung abarbeiten, deshalb -->
der befehl soll nur 5min laufen um zu überprüfen ob vom band gelesen werden kann, dann --> exitstatus 0 überprüfen --> mail an root: vom band kann gelesen werden.

ich hoffe mich jetzt klarer ausgerückt zu haben.

jorge :ms:

paux 09.10.2003 14:16

schieb das kommando mit einem abschließenden "&" in den hintergrund und führe als nächstes ein sleep $[5*60] aus. danach schau in einer if-abfrage ob das programm noch rennt, wenn ja dann finde die PID und mach tot.
wie das geht hab ich jetzt aber nicht parat. :rolleyes:

lg paux

Mirddryn 09.10.2003 14:16

ah,
kleiner lesefehler :/
mh, mal ueberlegen...

billige fassung ohne lang zu ueberlegen die mir einfaellt:
tar mit nohup machen
parallel dazu einen counter/sleep fuer 5 minuten,
tar killen
und dann noch folgendes ans ende des bash scripts:
Code:

echo "es kann vom band gelesen werden"
exit 0

probiert hab ich's nicht, sollte aber von der logik her problemlos gehn. und so schwer sind die befehle auch nicht ;P

Mirddryn 09.10.2003 14:19

Zitat:

Original geschrieben von paux
schieb das kommando mit einem abschließenden "&" in den hintergrund und führe als nächstes ein sleep $[5*60] aus. danach schau in einer if-abfrage ob das programm noch rennt, wenn ja dann finde die PID und mach tot.
wie das geht hab ich jetzt aber nicht parat. :rolleyes:

lg paux

jo, mit & gehts natuerlich auch

wobei ich glaub das problem liegt darin, dass das tar selbst nicht den exitstatus 0 zurueckliefert, und es entweder
a.) schon fertig ist
b.) nicht funktioniert hat
in beiden faellen laeuft es nach 5 minuten nichtmehr (gut, man kann hier auf den exitstatus pruefen, nur wenn es laeuft is man trotzdem schlecht dran)

paux 09.10.2003 14:22

Code:

# mt -f /dev/st0 status
mt: /dev/st0: No medium found
# echo $?
2
# mt -f /dev/st0 status
drive type = Generic SCSI-2 tape
drive status = 620756992
sense key error = 0
residue count = 0
file number = 0
block number = 0
Tape block size 0 bytes. Density code 0x25 (unknown).
Soft error count since last status=0
General status bits on (41010000):
 BOT ONLINE IM_REP_EN# echo $?
0
#

Reicht sowas nicht?

lg paux

jorge 09.10.2003 15:53

...danke für eure anregungen.

hier meine lösung:

code:
.
.
.

tar -tvzf /dev/st0 > /var/log/backup/lesen &
sleep 30
kill -9 $!
cat /var/log/backup/lesen >> /home/jme/mail/okles.mail
if test $? = 0
then mail -s "Sicherung Linux" sicherung@###### < /home/jme/mail/okles.mail
else mail -s "Sicherung Linux" sicherung@####### < /home/jme/mail/errles.mail
fi
.
.
.

gruss
jorge :ms:


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag