Month: August 2014

ldap search function

First you will need the ldap search utility. The client for ldap search comes in openldap-clients, so you need to install that first:

sudo yum install openldap-clients

Now, that you have installed it, try to find something in some open ldap server, example:

ldapsearch -LLL -h  db.debian.org   -x  -b "dc=debian,dc=org" "cn=Joao*"

This should list couple of entries for you. Now, that you have ldapsearch working, lets define a function in .bashrc file:

 

ldaps () 
{ 
    ( ldapsearch -LLL -h $2 -x -p 389 -b "$3" "cn=*$1*" | awk -F: 'BEGIN {
        last       = "NA"
        first      = "NA"
        name       = "NA"
        loc        = "NA"
        state      = "NA"
        postalcode = "NA"
        homephone  = "NA"
        telephonenumber = "NA"
        mail       = "NA"
        mobile     = "NA"
        printf(" last,first,full name,work#,e-mail,phone3\n");
}
/^sn: /              {last=$2}
/^givenName: /       {first=$2}
/^cn: /              {name=$2}
/^street: /          {address=$2}
/^l: /               {loc=$2}
/^st: /              {state=$2}
/^postalCode: /      {postalcode=$2}
/^homePhone: /       {homephone=$2}
/^telephoneNumber: / {telephonenumber=$2}
/^mail: /            {mail=$2}
/^mobile: /          {mobile=$2}
/^dn/ {
        if(last != "" && first != "" && last != "StoogeAdmin") printf("%s,%s,%s,%s,,%s,%s\n",last,first,name,telephonenumber,mail,mobile)
        last       = "NA"
        first      = "NA"
        name       = "NA"
        address    = "NA"
        loc        = "NA"
        state      = "NA"
        postalcode = "NA"
        homephone  = "NA"
        telephonenumber = "NA"
        mail       = "NA"
        mobile     = "NA"
}
# Capture last dn
END {
        if(last != "" && first != "" ) printf("%s,%s,%s,%s,,%s,%s\n",last,first,name,telephonenumber,mail,mobile)
}' ) | column -t -s ','
}

You might want to chagne few of the matches in the awk in the above script to suit your needs and then you can run this with :

ldaps    "searh string" "search host" "search base"

Apache server-status – better looking

Apache provides a module to see the server-status. However the page is not too good looking. So, if you want to see a better looking information page, then you can download :

http://sourceforge.net/projects/pimpapachestat/

More details from the readme file of the project:

 

REQUIREMENTS
* On the system you want to install the pimped Apache status:
– any webserver with php 5 (with curl; no database is needed)
* On all webservers you want to monitor:
– apache 2.x
– installed module mod_status and ExtendedStatus On
– permission for the monitoring server to request the the
alias /server-status (see below)

And tehn for installation:

INSTALL
1. Extract the files somewhere below webroot on your webserver. You
can put to any subdirectory. It is not a must to have it in the
webroot.
— OR —
checkout sources with svn client:
cd [webroot-directory]
svn checkout http://svn.code.sf.net/p/pimpapachestat/code/trunk apachestatus
2. Allow your server to access the server-status page on the systems
you want to monitor
<Location /server-status>
SetHandler server-status
order deny, allow
allow from 127.0.0.1
allow from 192.168.123.4 # enter ip of your monitoring system
deny from all
</Location>
3. Open http://localhost/apachestatus/ in your webbrowser.
4. In ./conf/ directory: open config_user.php and setup the systems you want
to monitor. See config_default.php to see other thing you could override

Note: If you are using latest apache version then the <Location> entry should be :

<Location /server-info>
SetHandler server-info
Require all granted
</Location>

 
CUSTOMIZATION
* change or add language: see readme in subdirectory ./lang/
* change theme:
– make copy ./templates/default/
– make changes in style.css and out_html.php in your copy
– set skin in ./conf/config_user.php:
$aUserCfg = array(
‘skin’ => ‘name_of_subdir’,
);

If you have a language or a theme to share then send it to me.