ubuntuusers.de

Aktion ausführen mit dhclient response

Status: Gelöst | Ubuntu-Version: Server 16.04 (Xenial Xerus)
Antworten |

skydiablo

Anmeldungsdatum:
20. Dezember 2016

Beiträge: Zähle...

moin, ich habe da ein kleines problem mit einem script was mir vererbt wurde. ursprünglich kam das mal auf openWRT zum einsatz und lief eigentlich recht zuverlässig. nun will/muss ich das ganze auf ubuntu zum laufen bekommen.

hier erst einmal das script (/etc/reboot.sh):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
logger ".....................Starting HA Checkscript............................"
date > /etc/dhcpcheck.log
env >> /etc/dhcpcheck.log
logger $1
#logger $reason
bla="nix"

if [ -n "$reason" ]
then
        logger "DHCLIENT REASON FOUND"
        bla=$reason
else
        logger "DHCLIENT REASON NOT FOUND"
        bla="$1"
fi

reason=$bla
logger $reason

case "$reason" in
BOUND)
        logger "INFO::::::: Running!!!!!!!!!!!!"
        killall -9 dhclient

    ;;
PREINIT)
        logger "INFO PREINIT::::::: DHCP Still not Received!!!!!!!!!!!!"
    ;;
FAIL)
        logger "::::::::::::::DHCP CHECK FAILURE:::::::"
        logger "REBOOT....."
        reboot
    ;;

START)
        netdev=$(ifconfig | grep l2tpeth0)
        logger "$netdev"
        if [[ $netdev == *l2tpeth0* ]]
         then
           logger "::::::::::::::STARTING DHCLIENT TEST ON INTERFACE::::::::"
           logger "::::::::::::::DHCLIENT TEST IN PROGRESS::::::::"
           logger "DHClient L2TPv3 Device found STARTING CHECKS"
           dhclient -sf /etc/reboot.sh l2tpeth0
        else
          logger ":::::::::::::::REBOOT:::::::::::::::::"
          /sbin/reboot
        fi

        
;;

*)
        logger "Something went Wrong, no such"
        logger $reason
;;

esac

exit 0

das ganze wird via crontab alle 5 min ausgeführt. ziel des scriptes ist es, auf einem interface zu prüfen ob dort ein dhclient (dhcp) response kommt. bleibt der response aus, soll das gerät neu gestartet werden! einige probleme konnte ich schon fixen (apparmor, fehler im script). nun passiert dennoch recht wenig ☹ unabhängig vom script, führe ich diese zeile aus (kein netzwerk verfügbar!):

1
dhclient l2tpeth0 -1 -v

dann rödelt er ewig rum und versucht immer wieder eine IP zu bekommen. ich dachte mit "-1" soll er es nur 1x versuchen?

kann sich mal bitte jemand mit etwas ahnung dem problem annehmen und das script einfach mal testen? gerne auch optimieren!

greez & thx, volker...

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hi Volker,

zuerst mal herzlich willkommen hier auf dem Forum !

Ok, Dein Erbstück ist handwerklich nicht besonders sauber gemacht ... aber was soll's.

Dein Ansatz ist schon ganz richtig: dass Du jetzt zuerst mal die einzelnen Befehle testest und sauber zum Laufen bringst.
Dann, als Zweites, kannst Du ja das Skript insgesamt ja noch versäubern, wenn Du dort alles zusammenbaust.


Hast Du schon mal in der man-Page nachgesehen, wie die Optionen genau aussehen müssen ?
Dort steht nämlich auch, dass man zuerst die Optionen, und erst danach die Adresse angeben muss. (wie bei den meisten Befehlen)
Und ansonsten lese ich dort einen Hinweis auf einen "Timeout" ... den man ggf. dann auch noch mal ins Auge fassen könnte.

LG,

track

skydiablo

(Themenstarter)

Anmeldungsdatum:
20. Dezember 2016

Beiträge: 3

sodele, habe mich nun etwas weiter versucht... er orentiert sich am default config file (/etc/dhcp/dhclient.conf), hier ist ein timeout von 300 hinterlegt. ergo wird er wohl 5 min versuchen ne neue IP zu bekommen! nachdem ich etwas mit dieser zahl gespielt habe, konnte ich weiter erfolge verzeichnen! leider ist es mir nicht möglichen, diesen timeout via CLI zu überschreiben? ein "timeout" parameter habe ich bisher nicht gefunden?

skydiablo

(Themenstarter)

Anmeldungsdatum:
20. Dezember 2016

Beiträge: 3

komme nun zurecht, danke für die aufmerksamkeit!

Antworten |