unterschiedliche Ausgaben von einem Befehl über rsh

P

pygo

Jungspund
Hallo!

Ich habe hier ein seltsames Phänomen, dass ich mir gerade nicht erklären kann und auch nicht weiss, wo ich Informationen dazu finden könnte. Ich mache in einem Perl-Script einen rsh-Aufruf. (Ja, soll ich nicht mehr, geht hier aber nicht anders und eigentlich sollte das auch nicht der Grund für das obskure Verhalten sein.) In dem Script, mit dem ich nur getestet habe, läufts super. Hier der Auszug aus dem Script:
Code:
[...]
my $server = 'fs00c1';
open(PS, "rsh $server -l perforce ps -efa | grep 'tail +0f /cluster' | ");
while(<PS>){
	print $_;
}
close(PS);
gibt das folgende aus, das so auch auf der Kommandozeile käme und völlig erwartet ist:
Code:
perforce 24101 23900  0 10:24:06 ?        0:00 tail +0f
/cluster/3008/log/log_3008
perforce 13796 13795  0 13:20:50 ?        0:00 tail +0f
/cluster/3402/log/log_3402
perforce 23865 23863  0 10:24:04 ?        0:00 tail +0f
/cluster/4004/log/log_4004

Dann wollte ich es allerdings übertragen in mein 'Hauptscript' und habe es erst reingepastet und dann angepasst (der hostname sollte zum Beispiel erst ausgelesen werden etc):
Code:
[...]
# get the hostname for this server
open(HOST, "rsh perforce$server -l perforce hostname |");
my $host = <HOST>;
close(HOST);

# kill all running tails on the host
my $hostCommand = "tail +0f $logfile";
print $hostCommand."\n";
open(PS, "rsh ".$host." -l perforce ps -efa | grep '".$hostCommand."' | ");
while(my $psLine = <PS>){
	print "PSline ".$psLine;
	if($psLine =~ / *?[a-zA-Z]+? (\d+?) /){
		# this line indicates a running tail that should be quit
		my $pidToKill = $1;
		open(STOP, "rsh $host -l perforce kill -9 ".$pidToKill." | ");
		close(STOP);
	}
}
close(PS);
[...]
und da erhalte ich als Ausgabe auf einmal
Code:
tail +0f /cluster/3402/log/log_3402
PSline Last login: Tue Dec 13 09:11:49 from ls0066.xxx.yyy-
PSline #
PSline # PrimeCLuster fs00c
PSline #
PSline # ######################################################
PSline # !! DO NOT change * perf9999 *  configuraion
PSline # !!  cause this service is the source for new one 
PSline # ######################################################
PSline 
PSline Mirroring Base LUNs/slices:
PSline 
PSline Rot(es1000)                     Wdf(es1001)
PSline /dev/dsk/c3t0d0s6       <->     /dev/dsk/c4t2d0s6
PSline /dev/dsk/c3t1d1s6       <->     /dev/dsk/c4t3d1s6
PSline /dev/dsk/c3t0d2s6       <->     /dev/dsk/c4t2d2s6
PSline /dev/dsk/c3t1d3s6       <->     /dev/dsk/c4t3d3s6
PSline /dev/dsk/c3t0d4s6       <->     /dev/dsk/c4t2d4s6
PSline /dev/dsk/c3t1d5s6       <->     /dev/dsk/c4t3d5s6
PSline ________________________________________________________
PSline You have new mail.
PSline /sni/tools/rms/clusterinfo.sh: powermt: execute permission denied
PSline ACHTUNG CAUTION ACHTUNG CAUTION ACHTUNG CAUTION ACHTUNG CAUTION
ACHTUNG
PSline
=======================================================================
PSline this system ist part of a HA-Cluster !!
PSline 
PSline 	HA-Cluster-Softwarestate on this host: 		Active
PSline 	HA-Cluster will start at next reboot : 		never
PSline 	Dead EMC Powerpath Channels (normal zero): 	0
PSline 	Perforce Services running on this host   :      42
PSline 	named	1666 1667 2100 3000 3003 3005 3008 3009 3010 3011 3012
PSline 		3013 3014 3016 3020 3021 3022 3025 3027 3028 3040 3091
PSline 		3100 3223 3224 3225 3227 3228 3230 3300 3301 3402 3645
PSline 		4000 4001 4002 4003 4004 5000 5001 5555 9997 
PSline
Ich kann dann sogar in dem Kommandofenster, in dem ich das Script gestartet habe Befehle an den entsprechenden Host schicken. Wie kann denn sowas vorkommen? Ich sehe keinen Unterschied zwischen den beiden Aufrufen...

Ok, ich sehe da eine Zeile, die mir was von "execute permission denied" erzählt. Aber ist das überhaupt mein Aufruf und wieso steht das erstens überhaupt in diesem Kontext und zweitens die permission ist mit dem anderen Script ja auch da.

Ich wäre für jede Idee erst mal dankbar!

Beste Grüsse - Pygo
 
Also... ich schäm mich jetzt ganz doll aber leider kann ich meinen Eintrag nicht löschen.

Fehler war der: ich habe den Hostnamen eingelesen und in $host gespeichert. Allerdings war da ein \n am Ende - und das hat das Problem verursacht! Da hätte ich auch vorher mal drauf kommen können...
 
Passiert.
Da bist du nicht der einizige der bereits 5 Minuten nach dem Post das Problem gefunden.

Siehs so , hättest du nicht gepostet hättest du vermutlich das Problem immernoch nicht gefunden rein nach der Annahme dass immer das schlimmstmögliche in einer Situation passiert .

Gruß Sono
 

Ähnliche Themen

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

NagiosGrapher 1.7.1 funktioniert nicht

Konfiguration zum Caldav und Carddav sync mit Thunderbird und Outlook?

Windows clients können nicht mehr auf lange laufendes System zugreifen

Rollei Mini Wifi Camcorder

Zurück
Oben