Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Problem mit SSH exit status

Frage Entwicklung Batch & Shell

Mitglied: kickboxkalle

kickboxkalle (Level 1) - Jetzt verbinden

08.04.2009, aktualisiert 10:44 Uhr, 4526 Aufrufe, 2 Kommentare

Hallo alle zusammen,

ich habe ein Problem mit dem exit status von SSH.
Und zwar versuche ich mit Hilfe des folgenden Bash-Scripts auf verschiedenen Servern das Passwort eines bestimmten Users (testuser) zu ändern.

01.
for SERVER in `cat $SERVERLIST`; 
02.
                do 
03.
                        echo "Connect to Server:  $SERVER"  | tee -a $LOGFILE 
04.
                        # einloggen auf dem Server 
05.
                        ssh $SERVER "echo "$PASSWORD" | passwd testuser --stdin"  | tee -a $LOGFILE 
06.
			echo "echo $?" | tee -a $LOGFILE   # testweise eingefügt 
07.
                        if [ $? != 0 ] 
08.
                                then    # Fehlermeldung, wenn nicht erfolgreich 
09.
                                        echo "!! ERROR !! Password not changed!"  | tee -a $LOGFILE 
10.
                        fi 
11.
                done
SERVERLIST, SERVER, LOGFILE und PASSWORD werden aus einer anderen Funktion übergeben..

Zuvor hab ich natürlich SSH-Keys verteilt, damit ich mich ohne erneute Passwortabfrage auf den Rechnern einloggen kann.
Das funktioniert an für sich auch ganz wunderbar, bis man in die Serverliste einen unbekannten Host einträgt.
Ich habe dafür übrigens root-Rechte..
Die Bildschirmausgabe sieht so aus:
01.
Connect to Server:  testserver1 
02.
Changing password for testuser. 
03.
echo 0 
04.
Connect to Server:  testserver2 
05.
Changing password for testuser. 
06.
echo 0 
07.
Connect to Server:  testserver999 
08.
ssh: testserver999: Name or service not known 
09.
echo 0
testserver999 ist dabei der unbekannten Host.
Wie man sieht, ist der exit status 0, obwohl der ssh-Befehl nicht erfolgreich war und er geht nie in den if-Pfad mit dem ich ja eigentlich genau solche Fälle abfangen möchte..
Der Eintrag im Logfile sieht folgendermaßen aus:

01.
Connect to Server:  testserver1 
02.
Changing password for testuser. 
03.
echo 0 
04.
Connect to Server:  testserver2 
05.
Changing password for testuser. 
06.
echo 0 
07.
Connect to Server:  testserver999 
08.
echo 0
Wie man sieht erscheint die Meldung "ssh: testserver999: Name or service not known" auch nicht im Logfile..

Wenn ich das manuell in der Shell eingebe, kommt wiederum das erhoffte Ergebnis:
01.
local_host: # ssh testserver999 "echo "xxxxxxxxx" | passwd testuser --stdin" 
02.
ssh: testserver999: Name or service not known 
03.
local_host: # echo $? 
04.
255
So sollte es ja dann eigentlich auch im Script laufen..?!

Hab ich da irgendwo nen Fehler oder weiss sonst jemand Rat?

MfG
Kalle
Mitglied: 75823
08.04.2009 um 11:29 Uhr
Weil in dem Skript hasst du exit status von tee und nicht von ssh
Bitte warten ..
Mitglied: kickboxkalle
08.04.2009 um 12:57 Uhr
Oooh ja, danke!
Schande über mein Haupt
Bitte warten ..
Ähnliche Inhalte
Linux
GUI Alternative zu SSH (21)

Frage von MegaGiga zum Thema Linux ...

Linux Netzwerk
gelöst SSH Trennung wenn Idle (8)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Linux Netzwerk ...

Microsoft
Virtuelle Maschine hängt in gespeicherten Status (2)

Frage von Philbo69 zum Thema Microsoft ...

Linux Netzwerk
gelöst Keine Reaktion auf ssh über fritzbox (12)

Frage von malkud zum Thema Linux Netzwerk ...

Neue Wissensbeiträge
Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(1)

Information von DerWoWusste zum Thema Microsoft ...

Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(6)

Information von LordGurke zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...

TK-Netze & Geräte
TK-Anlage VoIP - DECT Erweiterung (15)

Frage von Lynkon zum Thema TK-Netze & Geräte ...