Hi I had some troubles at Sun java systema application server start process when my dhcp server gave me a diferent ip address.. so here is my solution:
Code:
bash-3.1# cat /usr/local/bin/hosts.sh
#!/bin/bash
ifconfig | grep inet\ addr | grep -v '127.0.0.1' |awk -F ' +||:+' '{print $4}' > /usr/local/bin/localhosts-addresses
grep localhost /etc/hosts | grep -v '127.0.0.1' | grep -v "#"| awk -F' +' '{print $1}'>/usr/local/bin/etclocalhosts-addresses
lineas=`wc -l /usr/local/bin/localhosts-addresses| cut -d' ' -f1`
lineasetclocalhosts=`wc -l /usr/local/bin/etclocalhosts-addresses| cut -d' ' -f1`
for i in `seq 1 $lineas` ;do
ip=`head -n $i /usr/local/bin/localhosts-addresses | tail -1`
if [ $i -le $lineasetclocalhosts ]; then
ipetclocalhost=`head -n $i /usr/local/bin/etclocalhosts-addresses | tail -1`
replace "$ipetclocalhost" "$ip" -- /etc/hosts
else
ip=`head -n $i /usr/local/bin/localhosts-addresses | tail -1`
echo "$ip localhost" >> /etc/hosts
fi
done
also I did some changes to tha way I update my ip, previously i used the command dhcpcd <interface>. now I use a script that calls it and then calls my hosts.sh scrypt:
Code:
bash-3.1# cat /sbin/dhcp
#!/bin/bash
/sbin/dhcpcd $1 -k
rm /etc/dhcpc/dhcpcd-$1.pid
/sbin/dhcpcd $1
/usr/local/bin/hosts.sh
hope It helps someone.