![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| exit status van het commando in een pipe-line | topcat8 | UNIX voor Dummies Questions & Answers | 10 | 10-19-2007 05:39 |
| Haal het exit status van een externe opdracht | zoonalex | Programmeren en Shell Scripting | 1 | 08-23-2006 05:58 PM |
| Probleem met exit status | diganta | Programmeren en Shell Scripting | 1 | 09-28-2005 09:34 |
| Verplaats commando terug met exit code van 2 | handak9 | UNIX for Advanced & Expert Gebruikers | 1 | 08-26-2004 06:40 |
| Onjuiste exit status terug van FTP-commando - Help? | frustrated1 | Programmeren en Shell Scripting | 3 | 08-22-2003 04:25 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Verplaats Command and exit status probleem
Hi All,
Ik gebruik de volgende code te verplaatsen van bestanden naar een andere map op de server: ssh gebruikersnaam @ server <<EOF cd source_dir zoeken. -type f-name "*. txt" | xargs-n1000-i () () mv dest_dir if [$? ! \u003d 0] stuur dan e-mail met vermelding van fout anders echo "succes" fi EOF Nu, als ik de handleiding uitvoeren van het script werkt prima maar wanneer schema uitvoeren van het script gebeurt het verzenden van de mail aan mij aangeeft dat enkele fout heeft voorgedaan (hoewel dont 'weet de exacte foutmelding). Kan iemand mij vertellen waarom is dit happening.Moreover, hoe kan ik de exacte foutmelding, terwijl het schema uitvoeren van het script plaatsvindt. |
|
||||
|
Als u dit uit cron, een foutmelding moeten komen via e-mail (tenzij u uitdrukkelijk redirect standaardfout ergens). Aan de andere kant, misschien is het inderdaad zinvol om standaard output en standaard error naar een tijdelijk bestand ergens zodat u kunt controleren ze in min of meer real-time. Misschien een goed begin zou zijn om de waarde van $? in het foutenrapport. Als u vangen standaardfout en standaard output van de pijpleiding naar een tijdelijk bestand bevatten dat in de e-mail ook. Merk op dat de exit-code van xargs kunnen maskeren de afslag code uit mv Als een stilistische kwestie, is de enige opdracht die het echt verdient om te lopen op de externe server is de vinden | xargs mv pijpleiding. Code:
ssh username@server 'find source_dir -name "*.txt" | xargs -n 1000 -i {} mv {} destdir' &&
echo "Success" || mailx -s "fail" you@example.net
|
|
||||
|
Hi Era,
Bedankt voor het antwoord. Per uw antwoord, moet ik de volgende code op te sporen de uitvoering van opdrachten: ssh gebruikersnaam @ server 'vinden source_dir-name "*. txt" | xargs-n 1000-i () () mv bestemming' 1>> $ filename 2>> $ filename & & echo "Succes" | | mailx-s' mislukt ' you@example.net $ bestandsnaam aanwezig is op mijn lokale server, zal de bovenstaande code in staat zijn om de berichten. Anders kunt u wijzen op de andere variant van de code om de exacte fout message.The logboekbestand aanwezig moet zijn op de lokale server. Bedankt voor uw begrip |
|
||||
|
Pretty dicht, wil je 2> & 1 in plaats van 2>> $ filename Denk ik. Je hebt waarschijnlijk wilt verzenden $ bestandsnaam met de e-mail bericht, en het verwijderen van $ filename nadat u klaar bent. 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 Era,
Bedankt voor de uitleg en correctie van mij. Is het mogelijk voor het verzenden van het fout beschrijving (systeem-gedefinieerd) die overeenkomt met de exitstatus. Laat het me weten. Is er een verschil als ik-N100 in plaats van N-100 in het xargs opdracht? Is dat belangrijk als de ruimte heb ik getest, mijn script zonder gebruik te maken van de ruimte. |
|
||||
|
Wat bedoel je met "error beschrijving (systeem-gedefinieerd) die overeenkomt met de exitstatus"?
De ruimte tussen-n en het aantal is waarschijnlijk te verwaarlozen. Er zijn diverse optie-verwerking bibliotheken en sommige zijn gevoelig voor deze verschillen, terwijl andere niet, dus gebruik wat voor u werkt. |
|
||||
|
Ik bedoel als de exit status is 1 dan hoe kunnen we de werkelijke foutmelding die het reservoir kunnen zijn teruggekeerd, terwijl het uitvoeren van de opdracht. (of heb ik het gebruik van de gebruiker gedefinieerde bericht alleen)
|
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|