![]() |
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Exit-Status des Kommandos in einer Rohrleitung | topcat8 | UNIX for Dummies Questions & Answers | 10 | 10-19-2007 05:39 AM |
| Erste Ausfahrt von einem Remote-Befehl | zoonalex | Shell Programmierung und Scripting | 1 | 08-23-2006 05:58 PM |
| Problem mit der Exit-Status | diganta | Shell Programmierung und Scripting | 1 | 09-28-2005 09:34 AM |
| Move-Kommando zurück mit Exit-Code von 2 | handak9 | UNIX für Fortgeschrittene und Experten | 1 | 08-26-2004 06:40 AM |
| Falsche Ausfahrt Status Rückgabe von FTP-Befehl - Hilfe? | frustrated1 | Shell Programmierung und Scripting | 3 | 08-22-2003 04:25 AM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
Bewegen Sie Befehls-und Exit-Status Problem
Hi All,
Ich verwende den folgenden Code, um Dateien von einem Ordner in einen anderen auf dem Remote-Server: ssh username @ server <<EOF cd source_dir finden. -type f-name "*. txt" | xargs-N1000-i mv () () dest_dir if [$? ! \u003d 0] dann senden Sie eine Mail mit Angabe Fehler anderenfalls echo "Erfolg" fi EOF Nun, wenn ich die manuelle Ausführung des Skripts funktioniert gut, aber wenn der Zeitplan läuft das Skript findet sie senden die E-Mail an mich, dass einige Fehler ist aufgetreten (obwohl dont 'kennen den genauen Fehler). Kann jemand mir sagen, warum ist das happening.Moreover, Wie kann ich die genaue Fehlermeldung angezeigt, während das Programm läuft der das Skript ausgeführt wird. |
|
||||
|
Wenn Sie diese von cron, werden alle Fehlermeldungen, sollten per E-Mail (sofern Sie nicht ausdrücklich redirect Standard Fehler irgendwo). Auf der anderen Seite, vielleicht wäre es in der Tat sinnvoll, um Standard-Ausgabe und Standard-Fehler in einen temporären Datei, so dass Sie prüfen können sie in mehr oder weniger in Echtzeit.
Vielleicht ein guter Anfang wäre, um den Wert von $? in der Fehler-Bericht. Wenn Sie Capture-Standard-Fehler-und Standard-Ausgabe aus der Pipeline, um eine temporäre Datei, auch, dass in der E-Mail zu. Beachten Sie, dass die Exit-Code aus xargs könnte den Blick auf die Exit-Code aus mv Als stilistische Frage, die nur das Kommando wirklich braucht, um auf dem Remote-Server ist das find | xargs mv Pipeline. Code:
ssh username@server 'find source_dir -name "*.txt" | xargs -n 1000 -i {} mv {} destdir' &&
echo "Success" || mailx -s "fail" you@example.net
|
|
||||
|
Hi-Ära,
Vielen Dank für die Antwort. Wie Ihre Antwort, sollte ich den folgenden Code, um die Ausführung von Befehlen: ssh username @ server 'finden source_dir-name "*. txt" | xargs-n 1000-i mv () () DESTDIR " 1>> $ filename 2>> $ filename & & echo "Success" | | mailx-s "nicht" you@example.net $ filename ist auf meinem lokalen Server, werden die obigen Code in der Lage, um die Nachrichten. Else schlagen Sie bitte die andere Variante des Codes, um die genaue message.The Fehler-Log-Datei vorhanden sein sollten, auf dem lokalen Server. Vielen Dank für Ihr Verständnis |
|
||||
|
Sehr nahe, Sie wollen 2> & 1 anstelle von 2>> $ filename I guess. Sie wollen, schicken $ filename mit dem E-Mail-Nachricht, und entfernen Sie $ filename, nachdem Sie fertig sind.
Code:
ssh username@server \
'find source_dir -name "*.txt" | xargs -n 1000 -i {} mv {} destdir' >>$filename 2>&1 &&
echo "Success" || mailx -s "fail: $?" you@example.net <$filename
|
|
||||
|
Hi-Ära,
Vielen Dank für die Erklärung und Korrektur von mir. Ist es möglich, schicken Sie die Fehlerbeschreibung (System-definiert), die den exitstatus. Bitte lassen Sie es mich wissen. Gibt es einen Unterschied, ob ich-N100 statt-N 100 in der xargs-Kommando? Ist, dass Platz wichtig, da die ich getestet habe mein Skript ohne den Raum. |
|
||||
|
Was verstehen Sie unter "Fehler-Beschreibung (System-definiert), die den exitstatus"?
Der Raum zwischen-n und die Zahl ist wahrscheinlich unbedeutend. Es gibt verschiedene Option-Verarbeitung und einige Bibliotheken sind anfällig für diese Unterschiede, während andere nicht, dann verwenden Sie, was für Sie arbeitet. |
|
||||
|
Ich meine, wenn der Exit-Status 1 ist dann, wie können wir die tatsächliche Fehlermeldung, die der Shell könnte wieder während der Ausführung des Befehls. (oder habe ich die Verwendung der benutzerdefinierten Nachricht nur)
|
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|