WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 09.10.2003, 13:50   #1
jorge
Veteran
 
Registriert seit: 20.05.2003
Alter: 50
Beiträge: 398


Standard 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
jorge ist offline   Mit Zitat antworten
Alt 09.10.2003, 14:02   #2
Mirddryn
Jr. Member
 
Registriert seit: 02.07.2003
Beiträge: 27


Standard

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
Mirddryn ist offline   Mit Zitat antworten
Alt 09.10.2003, 14:10   #3
jorge
Veteran
 
Registriert seit: 20.05.2003
Alter: 50
Beiträge: 398


Standard

@ 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
jorge ist offline   Mit Zitat antworten
Alt 09.10.2003, 14:16   #4
paux
Veteran
 
Registriert seit: 25.09.2001
Beiträge: 386


Standard

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.

lg paux
____________________________________
SpamAssassin - The only pne|s en|@rgement p|II that really works!
paux ist offline   Mit Zitat antworten
Alt 09.10.2003, 14:16   #5
Mirddryn
Jr. Member
 
Registriert seit: 02.07.2003
Beiträge: 27


Standard

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 ist offline   Mit Zitat antworten
Alt 09.10.2003, 14:19   #6
Mirddryn
Jr. Member
 
Registriert seit: 02.07.2003
Beiträge: 27


Standard

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.

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)
Mirddryn ist offline   Mit Zitat antworten
Alt 09.10.2003, 14:22   #7
paux
Veteran
 
Registriert seit: 25.09.2001
Beiträge: 386


Standard

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
____________________________________
SpamAssassin - The only pne|s en|@rgement p|II that really works!
paux ist offline   Mit Zitat antworten
Alt 09.10.2003, 15:53   #8
jorge
Veteran
 
Registriert seit: 20.05.2003
Alter: 50
Beiträge: 398


Standard

...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
jorge ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:36 Uhr.


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