The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 09-12-2008
visingha visingha is offline
Registrierte Nutzer
  
 

Join Date: Sep 2008
Beiträge: 20
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.
  #2 (permalink)  
Old 09-12-2008
Ära era is offline Forum Advisor  
Herder sinnlosen Katzen (Am Sabbatical)
  
 

Join Date: März 2008
Location: / es / ist / nur / bin / sh
Beiträge: 3652
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
  #3 (permalink)  
Old 09-12-2008
visingha visingha is offline
Registrierte Nutzer
  
 

Join Date: Sep 2008
Beiträge: 20
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
  #4 (permalink)  
Old 09-12-2008
Ära era is offline Forum Advisor  
Herder sinnlosen Katzen (Am Sabbatical)
  
 

Join Date: März 2008
Location: / es / ist / nur / bin / sh
Beiträge: 3652
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
  #5 (permalink)  
Old 09-12-2008
visingha visingha is offline
Registrierte Nutzer
  
 

Join Date: Sep 2008
Beiträge: 20
Smile

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.
  #6 (permalink)  
Old 09-12-2008
Ära era is offline Forum Advisor  
Herder sinnlosen Katzen (Am Sabbatical)
  
 

Join Date: März 2008
Location: / es / ist / nur / bin / sh
Beiträge: 3652
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.
  #7 (permalink)  
Old 09-12-2008
visingha visingha is offline
Registrierte Nutzer
  
 

Join Date: Sep 2008
Beiträge: 20
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)
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 01:35 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0