Run a script automatically when an IP is added
Cameron Simpson
cs at zip.com.au
Wed Aug 27 22:47:05 UTC 2014
On 26Aug2014 09:37, Yong Huang <yong321 at yahoo.com> wrote:
>Oracle's clusterware can migrate a VIP from one server to another. I'd like to have the target server automatically run a shell script once the new IP comes in. Is there a way to detect that and trigger execution of this script?
>
>This
>http://www.diglinux.com/2012/04/07/linux-heartbeat-ip-fail-over-2/
>looks like what I need. But I wonder if a simpler solution exists, preferably without installing extra package. In fact, yum install heartbeat on my Red Hat box didn't find the package.
Since nobody has replied, this is something you can do yourself with a little
script. As a starting point, this lists all the IPv4 addresses on my host
(current OSX, but adjusting for Linux "ifconfig" output should be easy):
ifconfig -a | sed -n 's/^ inet \([1-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\) .*/\1/p'
Note that the first whitespace before "inet" is a TAB character.
Have a look at "ifconfig -a" on your system and adjust the regexp.
(Or, if you care only about a specific interface, use "ifconfig eth0" or
whatever to monitor just that interface.)
Then all you would do is run that, pipe it through "sort -u", and put the
output in a file.
Next time, run it, sort, put in a temp file.
Compare them ("cmp -13 old-file tmp-file" should be useful) to get a list of
new IP addresses. When you get a new one, do what you want. Save the tmp-file
to the old-file for use on the next run.
Put it in cron to run regularly.
Cheers,
Cameron Simpson <cs at zip.com.au>
WFO: the normal throttle position for Denizens, squids, and unfortunates on
50cc Honda step-throughs.
More information about the redhat-list
mailing list