Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

IF THEN Statement im bash-script funktioniert nicht

Frage Entwicklung Batch & Shell

Mitglied: FA-jka

FA-jka (Level 2) - Jetzt verbinden

18.08.2014, aktualisiert 22:32 Uhr, 1196 Aufrufe, 3 Kommentare

Hier mal "so zum Zeigen" das Script, mit dem ich die dynamische IP-Adresse von meinem RasPI aktualisiere:

01.
#!/bin/bash 
02.
03.
hostname=xyz.zapto.org 
04.
getipscript=/root/dyndns/get_ip.sh 
05.
xml_file=/root/dyndns/external_ip.xml 
06.
logfile=/root/dyndns/cronscript.log 
07.
 
08.
dns_ip=$(dig @8.8.8.8 $hostname +short) 
09.
meine_ip=$($getipscript) 
10.
 
11.
date >> $logfile 
12.
 
13.
echo "Externe DNS IP:" $dns_ip >> $logfile 
14.
echo "Externe IP der Fritz! Box:" $meine_ip >> $logfile 
15.
 
16.
if [ "$dns_ip" = "$meine_ip" ] 
17.
then 
18.
  echo "IP-Adressen sind identisch, kein Update notwendig" >> $logfile 
19.
else 
20.
  echo "DNS-IP veraltet, Update erfolgt" >> $logfile 
21.
  ddclient -daemon=0 -debug -verbose -noquiet 2 /etc/ddclient.conf >> $logfile 
22.
fi 
23.
 
24.
echo "" >> $logfile 
25.
echo "" >> $logfile 
26.
echo "" >> $logfile 
27.
root@pinulldrei:~/dyndns#
Wenn ein Update erfolgen soll (also die IP-Adressen unterschiedich sind), wird Zeile 20 ausgeführt. Zeile 21 wird in dem Fall jedoch nicht ausgeführt. Wenn ich den Befehl aus Zeile 21 per cut&paste "händisch" fahre, läuft der problemlos durch.

Warum wird Zeile 21 nicht ausgeführt?
Mitglied: Lochkartenstanzer
18.08.2014, aktualisiert 19.08.2014
Zitat von FA-jka:

Wenn ein Update erfolgen soll (also die IP-Adressen unterschiedich sind), wird Zeile 20 ausgeführt. Zeile 21 wird in dem Fall
jedoch nicht ausgeführt. Wenn ich den Befehl aus Zeile 21 per cut&paste "händisch" fahre, läuft der
problemlos durch.

Warum wird Zeile 21 nicht ausgeführt?

'N Abend

wie stellst du fest, das zeile 21 nicht ausgeführt wird?

Schreib doch dahinter doch einfach noch ein echo, um festzustellen ob die zeile danach ausgeführt wird.

lks

Nachtrag: Stimmen die Pfade? Unter welchem User wird das Skript ausgeführt udn hat der denselben Pfad wie Du, wenn Du das im Terminal ausführst?
Bitte warten ..
Mitglied: FA-jka
19.08.2014 um 08:42 Uhr
Ich habe das Gefühl, Du bist auch der Meinung, dass die Zeile ausgeführt werden müsste

Das mit den Pfaden kann tatsächlich sein. Ich befinde mich auf einer Rootshell und starte das Script direkt -> kein Problem. Ansonsten steht das in der crontab vom Root drin und dort scheint es nicht zu funktionieren.

Ich werde heute Abend mal den vollständigen Pfad vor den ddclient basteln.
Bitte warten ..
Mitglied: Lochkartenstanzer
19.08.2014, aktualisiert um 08:50 Uhr
Zitat von FA-jka:

Ich habe das Gefühl, Du bist auch der Meinung, dass die Zeile ausgeführt werden müsste

Eben. deswegen mein rat, einfach ein zweites echo hinter die ddclient-Zeile zu schreiben, damit man sicher weiß, daß der else-teil komplett abgearbeitet wird.

Das mit den Pfaden kann tatsächlich sein. Ich befinde mich auf einer Rootshell und starte das Script direkt -> kein
Problem. Ansonsten steht das in der crontab vom Root drin und dort scheint es nicht zu funktionieren.

Wenn es aus der root-shell korrekt ausgeführt wird, heißt das, daß das skript in Ordnung ist.

hast Du stderr in der crontab auf /dev/null gebogen oder werden fehler Dir per mail zugestellt? Schau mal in die mails von/an root, die Dir der cron-daemon schickt. da soltle es drinstehen, wenn Du stderr nicht nach /dev/null entsorgt hast.

lks
Bitte warten ..
Ähnliche Inhalte
Ubuntu
Nregp ereignis für bash-script (3)

Frage von rsadmchef zum Thema Ubuntu ...

Batch & Shell
Bash sqlplus oder Bash Fehler? (7)

Frage von Marabunta zum Thema Batch & Shell ...

Batch & Shell
gelöst Bash Script stoppt nach start (4)

Frage von flooo89 zum Thema Batch & Shell ...

Linux
gelöst Umlaute zählen - Bash-Script (5)

Frage von plutowitsch zum Thema Linux ...

Neue Wissensbeiträge
Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Exchange Server

Mittels Batch-Script Exchange-Logs sammeln und archivieren

Anleitung von beidermachtvongreyscull zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
SSL Zertifikat für HTTPS (29)

Frage von Hendrik2586 zum Thema Verschlüsselung & Zertifikate ...

Grafikkarten & Monitore
24" oder 27" mit Full HD oder doch mehr Auflösung? (21)

Frage von brutzler zum Thema Grafikkarten & Monitore ...

Netzwerke
Ip Adressenkonflikt bei Großfamilie (12)

Frage von gunter zum Thema Netzwerke ...