Problem with script execution from a DHCP event


 
Thread Tools Search this Thread
Special Forums IP Networking Problem with script execution from a DHCP event
# 1  
Old 01-04-2012
Problem with script execution from a DHCP event

Hi,

I'm installing a DHCPD Server with the packages from a distro SLES11 SP1 (dhcp-server-3.1.1-7.12).

And a DNS Server with PowerDNS:

pdns-recursor-3.3-1
pdns-static-3.0-1


The DHCP update de DNS Server, but PowerDNS is not RFC 2135 compliant, and I have to update the MySQL register from PowerDNS with a script, when the leased is changed.

This event is reached with the DHCP event managed in...

/etc/dhcpd.conf:
...
include "/etc/dhcpd/dhcpd.subnet";
...
/etc/dhcpd/dhcpd.subnet:
...
subnet 192.168.12.0 netmask 255.255.255.0 {
option routers 192.168.12.2;
pool {
authoritative;
failover peer "dhcp_failover";
range 192.168.12.20 192.168.12.254;
}
include "/etc/dhcpd/dhcpd.events";
}
...
/etc/dhcpd/dhcpd.events:
...
on commit {
set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
log(concat("Commit: IP: ", ClientIP, " Mac: ", ClientMac, " Hostname: ", option host-name));
execute("/usr/local/bin/dhcp-event", "commit", ClientIP, ClientMac, option host-name);
}
...
The problem is that the script cannot run, the log error says "Unable to execute ...: No such file or directory" "... exit status 32512".
I cannot understand why:
...
Jan 4 17:19:09 342falsa dhcpd: Commit: IP: 192.168.12.44 Mac: 0:c:29:81:5:2b Hostname: mandingo
Jan 4 17:19:09 342falsa dhcpd: execute_statement argv[0] = /usr/local/bin/dhcp-event
Jan 4 17:19:09 342falsa dhcpd: execute_statement argv[1] = commit
Jan 4 17:19:09 342falsa dhcpd: execute_statement argv[2] = 192.168.12.44
Jan 4 17:19:09 342falsa dhcpd: execute_statement argv[3] = 0:c:29:81:5:2b
Jan 4 17:19:09 342falsa dhcpd: execute_statement argv[4] = mandingo
Jan 4 17:19:09 342falsa dhcpd: Unable to execute /usr/local/bin/dhcp-event: No such file or directory
Jan 4 17:19:09 342falsa dhcpd: execute: /usr/local/bin/dhcp-event exit status 32512
Jan 4 17:19:09 342falsa dhcpd: DHCPREQUEST for 192.168.12.44 from 00:0c:29:81:05:2b (mandingo) via eth0
Jan 4 17:19:09 342falsa dhcpd: DHCPACK on 192.168.12.44 to 00:0c:29:81:05:2b (mandingo) via eth0
...
The contents from "/usr/local/bin/dhcp-event" is irrelevant, I probed with another code, with another command interpreter, with anothers paths ...
The error is always the same:
...
dhcpd: Unable to execute PATH/SCRIPT: No such file or directory
dhcpd: execute: PATH/SCRIPT exit status 32512
...
I probed with total permissions, with a owner "dhcpd" (the execution from dhcp is "chrooted") ... but the same.

Can somebody help me?
Thank you very much

Best Regards,

Sorry, my English is not good. Be patient ;-)

Last edited by bypper; 01-04-2012 at 01:03 PM..
# 2  
Old 01-05-2012
Please post the output from:
Quote:
ls -lad /usr
ls -lad /usr/local
ls -lad /usr/local/bin
ls -lad /usr/local/bin/dhcp-event
# 3  
Old 01-06-2012
Permissions

Thank you for your answer, this is the output...

Quote:
342falsa:~ # ls -lad /usr/
drwxr-xr-x 12 root root 4096 ene 31 2011 /usr/

342falsa:~ # ls -lad /usr/local
drwxr-xr-x 10 root root 4096 ene 31 2011 /usr/local

342falsa:~ # ls -lad /usr/local/bin
drwxr-xr-x 2 root root 4096 ene 4 12:12 /usr/local/bin

342falsa:~ # ls -lad /usr/local/bin/dhcp-event
-rwxrwxr-x 1 root root 2222 ene 4 10:36 /usr/local/bin/dhcp-event
# 4  
Old 01-06-2012
Sorry, I can't see anything wrong with the permissions.


Quote:
the execution from dhcp is "chrooted"
What exactly does this statement mean. If you have issued a unix "chroot" command and the directory /usr/local/bin is not under the new root that would explain everything.
# 5  
Old 01-07-2012
Chrooted installation

Yes, the installation is chrooted:

Quote:
342falsa:~ # grep -v ^# /etc/sysconfig/dhcpd | grep -v ^$
DHCPD_INTERFACE="eth0"
DHCPD_RUN_CHROOTED="yes"
DHCPD_CONF_INCLUDE_FILES="/etc/dhcpd"
DHCPD_RUN_AS="dhcpd"
DHCPD_OTHER_ARGS=""
DHCPD_BINARY=""
And I thought this, too

But I moved the script "dhcp-event" (and anothers) a the chrooted path (/var/lib/dhcp), and I have created a "bin" directory in this path (/var/lib/dhcp/bin) with a script "dhcp-event" inside, but without effect.

The problem seems point to some bug with the "execute" sentence, because the others sentences from dhcp events (set VARIABLE, other log (concat(xxx)) run OK. If I delete the sentence "execute", no errors.

The only error that is received corresponds to "execute" sentence, and always is the same:

Quote:
... No such file or directory
... exit status 32512


The message is clear: is not found, but why, is not found in /usr/local/bin (located in $PATH environment), not found in /tmp, not found in /var/lib/dhcp/bin (chrooted path) ...

Smilie
# 6  
Old 01-09-2012
The problem is... CHROOT

I think that the "chroot" funcionality have a BUG.

No script can be found using the "chroot" environment.

When I disable in "/etc/sysconfig/dhcpd"...

Quote:
...
DHCPD_RUN_CHROOTED="no"
...
The script run without problem.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Execution problem with shell script for modifying a user

#/bin/sh echo "enter the user name" read $username echo "Enter new home directory" read $newhd usermod -d $newhd $username ;; error while executing : enter the user name Rev Enter new home directory: /home/58745 usermod: option requires an argument -- 'd' Try `usermod --help' or... (2 Replies)
Discussion started by: Revanth547
2 Replies

2. Solaris

Execution problem in shell script while insert into DB

Hi, am facing some problem while inserting a record into a script Please find script below. `sqlplus -s asdf/asdf123 <<eof! set feedback off; set heading off; set verify off; insert into... (2 Replies)
Discussion started by: senkerth
2 Replies

3. Shell Programming and Scripting

Execution problem with csh script

Hi All, I have a small issue with my csh script which I am using to FTP a file. What I know is...there are two commands to execute script.. 'sh <file>' & '\<file>'. When I execute my script with command 'sh <file>', it gives me syntax error while it runs successfully with command '\<file>'. I am... (3 Replies)
Discussion started by: ndd
3 Replies

4. Shell Programming and Scripting

Execution problem with shell script

Hi all, I want to use perl string manipulation commands in my shell script. I have written following script. echo "enter name" read name perl -e '$m=length($name); echo $m it gives an error: unrecognized token in perl command line. do not suggest me an equivalent command of shell... (3 Replies)
Discussion started by: admc123
3 Replies

5. Shell Programming and Scripting

Execution problem with grep script (2 variables)

#!\bin\sh TEST=test.log GREP=\usr\bin\grep $GREP -i 'dog\|cat' ${TEST} Why doesn't grep run at all? (10 Replies)
Discussion started by: jazzaddict
10 Replies

6. Shell Programming and Scripting

parallel execution of script/ synchro problem

Hi everybody, In a csh script, i need to run 4 time the same prog with different parameters. What i want is to run them in parallel. for this i use the command toto1.sh & toto2.sh & toto3.sh & toto4.sh For this I have no problem. In fact, I need to wait until all the programs are over to... (2 Replies)
Discussion started by: Moumou
2 Replies

7. UNIX for Advanced & Expert Users

How to get DHCP address change event notification programmatically?

Hello Experts, I am working on a software that has network client-server architecture. I need to have a mechanism that notifies me upon change of dhcp address change locally or at remote machine. Windows have IP Helper APIs to get address change notification. Is there something similar in Unix?... (3 Replies)
Discussion started by: GajendraSharma
3 Replies

8. Shell Programming and Scripting

problem with remote execution of script using telnet

Hi all, i am trying to remotely execute a script from a different server. this is the code that i use : #!bin/sh pwd (sleep 1 echo "username" sleep 2 echo "pwd" sleep 2 echo "cd /path/to/file" if then echo "script1.sh" echo "mailx -s "Task Executed"... (1 Reply)
Discussion started by: sais
1 Replies

9. Shell Programming and Scripting

problem with shell script execution

Hi All, i am running a shell script in which there is a command `ps -ef | grep smon > db` When i execute this command in the command prompt i am getting the desired output..but when the script is executed..the db file is getting created but with no values...I could not find the reason for... (2 Replies)
Discussion started by: anju
2 Replies
Login or Register to Ask a Question