How Do I Execute a Script After Dhcp Assigns an Ip Address on Start up?

I have written a shell script that sends my current IP to a google drive folder to aid in automating logging into a raspberry PI. Another script on my laptop retrieves the IP and logs in. The script works fine when I run it from the command line but I am having trouble getting it to run on start up after the IP is assigned.

I have tried crontab but the script runs before the IP is assigned. I do not wish to set a timer or uses a while loop to wait for an IP, that doesn't sound very efficient. I am trying to execute my script during the start up process but after DHCP runs. I tried adding the path to upstart in the allinterfaceup() function but that did not work either. Any help would be appreciated.

Raspberry PI 3, Ubuntu Mate 16.04 LTS

script:

#!/bin/sh

#if ([ $reason = "BOUND" ] || [ $reason = "RENEW" ] )
#then

        echo `hostname -I | cut -d' ' -f1 ` > ~/ipAddr/ip.txt

        rclone copy ~/ipAddr/ip.txt remote:pi 
#fi
3

1 Answer

Hooks


There is an array of possibilities how to do this.

If you want to execute your script " after DHCP runs " then hooks are the right thing for you !

dhclient will execute everything in the directory /etc/dhcp/dhclient-exit-hooks.d/ after it exits.*

Its good practice to link your script to the directory, rather than place it there - but both works.

ln -s /path/to/your/script  /etc/dhcp/dhclient-exit-hooks.d/name_of_your_script

(*) However, dhclient doesn't "exit" per se, but rather continues to run and executes ("sources") this directory every-time it does something for a reason.

So, to prohibit your script from being executed numerous times, I suggest you wrap it with an "if statement" to execute it only if the IP address is bound or renewed like this:

if ([ $reason = "BOUND" ] || [ $reason = "RENEW" ])
then

# your script commands here

fi
10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

David Miller

David Miller

Executive Financial & Market Analyst

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.

Share this article
Twitter Facebook Pinterest