Überprüfen Sie den Status der Shell-Skriptkopie

404
user324868

Ich habe ein Cron-Skript und muss es anpassen. Tatsächlich erzeugen einige Clients in einem Verzeichnis einige Dateien, meine Aufgabe besteht darin, diese Dateien auf einem Band zu sichern, und ich muss ein Wenn-dann-anderes machen

cp $files $tape if exit 0  then  send successfully mail  delete files else  send a fail mail  but don't delete that files fi 

Könnte mir jemand dabei helfen?

Vielleicht mit so etwas? Eigentlich ist der Code so

 find $STR_FILES -print | backup -ivq -f $TAPE >> /tmp/logfile 

Sie sagen, dass ich so etwas setzen muss?

 BKP='find $STR_FILES -print | backup -ivq -f $TAPE' $BKP >> /tmp/logfile if [$BKP -eq 0 ] then ... else ... fi 

?

Eigentlich habe ich einen Test gemacht

Eigentlich habe ich cd / find / u01 -name ora_856562.aud gemacht

 if ["$?" = "0" ]; then rm /u01/app/oracle/product/10.2.0/db_1/rdbms/audit/ora_856562.aud (echo "Se depuraron *.aud Ok") | mail -r oracle_alfa@notification.imcl-peoplesoft.com -s "Prueba if" egrc77@hotmail.com else (echo "NO Se depuraron *.aud Ok") | mail -r oracle_alfa@notification.imcl-peoplesoft.com -s "Prueba if" egrc77@hotmail.com fi exit 

scheitert aber mit

 ./prueba.sh[3]: 0: not found. ./prueba.sh[5]: [127: not found. 
0

1 Antwort auf die Frage

0
Bruno9779

Ich würde Sie ernsthaft für den Benutzer rsync empfehlen.

Aber zurück zum Thema, Ihr Skript ist fast fertig, aber Sie müssen ein paar Dinge korrigieren:

  • Die Bedingung muss festgelegt werden. Sie brauchen etwas wie:

    wenn [$? -eq 0]

Lesen Sie hier über Bedingungen und dergleichen.

  • Sie können E-Mails einfach mit einem von mehreren Programmen über CLI versenden. Ich empfehle sendmail wegen seiner Benutzerfreundlichkeit. Mehr hier
Der Mail-Skript-Code, den ich habe und funktioniert, ist eigentlich der Code $ STR_FILES -print | backup -ivq -f $ TAPE >> $ TMP_LOG_DLS BKP = 'Suche nach $ STR_FILES -print | backup -ivq -f $ TAPE 'wenn [$ BKP -eq 0]? user324868 vor 9 Jahren 0
das $? Variable enthält den Exit-Status des zuletzt ausgeführten Befehls. Sie müssen nicht den Wert von $ BKP überprüfen, sondern nur den Beendigungsstatus der Operation, in der Sie die Sicherung durchführen Bruno9779 vor 9 Jahren 0
Eigentlich habe ich einen Test gemacht user324868 vor 9 Jahren 0
Eigentlich habe ich cd / find / u01 -name ora_856562.aud gefunden, wenn ["$?" = "0"]; dann rm /u01/app/oracle/product/10.2.0/db_1/rdbms/audit/ora_856562.aud (echo "Se depuraron * .aud Ok") | mail -r oracle_alfa@notification.imcl-peoplesoft.com -s "Prueba if" egrc77@hotmail.com else (echo "NO se depuraron * .aud ok") | mail -r oracle_alfa@notification.imcl-peoplesoft.com -s "Prueba if" egrc77@hotmail.com zum Beenden user324868 vor 9 Jahren 0