Thursday, July 28, 2011

Configuring ISCSI targets and initiators.

ISCSI Server installation and Configuration.

ISCSI (Internet Small Computer System Interface) - (IP)-based storage networking standard for linking data storage facilities. By carrying SCSI commands over IP networks
iscsi targets should be raw disk or block file only.


ISCSI Target - Server from where the ISCSI disk space is shared.
ISCSI Initator - Clients on which the ISCSI targets are mounted.

SERVER / TARGET side Configuration
====================

Package requirments
----------------------
yum install scsi-target-utils.i386
yum install openssl-devel.i386

/etc/init.d/tgtd start

Creating iscsi lun
=============
tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2011-04.com.mxmail:storage.disk2.mxmail.com
tgtadm --lld iscsi --op show --mode target

Attaching storage to the LUN
----------------------------
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /iscsifile

or for physical disk
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb
tgtadm --lld iscsi --op show --mode target

Securing the iscsi targets
===================

IP based restriction
------------------
tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL #Allowing all IP on the network to access Target ID1
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.2.10 #Allowing specific IP access to Target ID1
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.2.0/24 #Allowing specific IP subnet to Target ID1

User based restriction
---------------------
tgtadm --lld iscsi --op new --mode account --user user1 --password password1 #Creation of User account
tgtadm --lld iscsi --op bind --mode account --tid 1 --user fujita #Adding User account to the target ID1
tgtadm --lld iscsi --op unbind --mode account --tid 1 --user fujita #Removing User account to the target ID1

-------------------------------------------------------------------------------------
To make the configuration persistent across add the above lines into /etc/rc.local file
--------------------------------------------------------------------------------------



INITIATOR side Configuration
=====================

yum install iscsi-initiator-utils-6.2.0.865-0.8.el5
yum install lsscsi-0.17-3.el5
service iscsi start
chkconfig iscsi on

Running discovery of the iscsi server.
iscsiadm --mode discovery --type sendtargets --portal 192.168.10.10 (Target Server IP)
Should list an output like this: 192.168.10.10:3260,1 iqn.2011-04.com.mxmail:storage.disk2.mxmail.com

vi /etc/iscsi/initiatorname.iscsi
add this value - InitiatorName=iqn.2011-04.com.mxmail:storage.disk2.mxmail.com

iscsiadm -m node
Will show all the iscsi devices.

#lsscsi (Command to display the mapped iscsi disks)
[0:0:0:0] disk VMware Virtual disk 1.0 /dev/sda
[9:0:0:0] storage IET Controler 0001 - #LUN Controller
[9:0:0:1] disk IET VIRTUAL-DISK 0001 /dev/sdb #Virtual Disk mapped to /dev/sdb

#fdisk -l /dev/sdb
Disk /dev/sdb: 3221 MB, 3221225472 bytes
100 heads, 62 sectors/track, 1014 cylinders
Units = cylinders of 6200 * 512 = 3174400 bytes

Disk /dev/sdb doesn't contain a valid partition table

All configuration files for iscsi is stored in /var/lib/iscsi/




Procedure to delete a LUN from ISCSI Server

Disable the connection from client ISCSI targets and Logging out of the portal session,

iscsiadm --mode discovery --type sendtargets --portal 192.168.1.1 (List the portal sessions)

iscsiadm --m node -T iqn.2013-08.com.iscsi:storage.proxmox_vm.mllab.net  --portal 192.168.1.1:3260 -u ( Will log out from the portal sessions)


iscsiadm -m node -o delete -T iqn.2013-08.com.iscsi:storage.proxmox_vm.mllab.net  --portal 192.168.1.1:3260 (Delete the portal connections)


Remove the Target from the ISCSI server side


Below listed are the steps to be followed for deleting a LUN from the ISCSI server.

Assumptions for this example,

The ISCSI server has multiple LUN configured. Each LUN is using one logical Unit(disk/slice/folder/blockdevice)


Unbind the IP Address from the Access List before deleting the logical unit.
tgtadm --lld iscsi --op unbind --mode target --tid 3 -I 192.168.1.0/24
tgtadm --lld iscsi --op unbind --mode target --tid 3 -I 172.22.1.0/24


Delete the Logincal Unit (Device/Folder/Slice) that is mapped to the LUN
tgtadm --lld iscsi --op delete --mode logicalunit --tid 3 --lun 1


Look for any active sessions connected to the LUN.
tgtadm --lld iscsi --op show --mode target
  I_T nexus information:
        I_T nexus: 10
            Initiator: iqn.1998-01.com.vmware:esxi1-4805d107
            Connection: 0
                IP Address: 192.168.1.2
        I_T nexus: 13
            Initiator: iqn.1998-01.com.vmware:esxi3-4716f412
            Connection: 0
                IP Address: 192.168.1.4
        I_T nexus: 15
            Initiator: iqn.1998-01.com.vmware:esxi5-31cd0643
            Connection: 0
                IP Address: 192.168.1.6

In this case there are 3 Sessions connected to the LUN (Connection ID 10, 13 and 15)

Disconnect each of the sessions before deleting the LUN.
tgtadm --lld iscsi --op delete --mode conn --tid 3 --sid 10
tgtadm --lld iscsi --op delete --mode conn --tid 3 --sid 13
tgtadm --lld iscsi --op delete --mode conn --tid 3 --sid 15


Delete the LUN ID 3
tgtadm --lld iscsi --op delete --mode target --tid 3


View to confirm the target LUN is deleted.

tgtadm --lld iscsi --op show --mode target

Tuesday, May 31, 2011

Script to populate mails to mail accounts with an attachment and contents in body.

Shell Script for populating mails to mail users - For testing reasons.

while read username
do
for i in {1..25}
do
mutt -s "sample mail $i" -a /root/attachment.log -- $username"@mltech.com" < mailbody.template
done
done < useraccount

useraccount file will contain mail accounts.
mailbody.template file will contain mail body content.
attachment.log file is the attachment file.

Oneliner script for user account & password creation in linux

You need to have root user privileges to run some of the commands in the script needs.

user=openuser;for i in {1..50};do useradd $user$i;pd=abc;echo $user$i$pd |passwd --stdin $user$i;done

This will create user names openuser1, 2 till 50 with password "openuser1abc, openuser2abc, etc.,"

Tuesday, March 15, 2011

DOS - Batch programming - Accept command input for batch programm

hello.bat file content
@echo welcome %1 %2 %3 %4 boy

Execution.
hello one two three four

output will be
C:\Documents and Settings\retheesh\Desktop>hello one two three four (Input parameters)
welcome one two three four boy

Friday, March 04, 2011

perl oneliners

perl -p -i -e 's/oldstring/newstring/g' filename.
This will change the oldstring to newstring in the file.



Perl oneliner to install modules. (Note should have internet access and should have CPAN configuration done)


perl -MCPAN -e 'install HTML::Template'
                 OR

cpan -i 'install HTML::Template'



SED one Liner

Tuesday, November 02, 2010

XOR operation for Parity Caluclation

Sample XOR operation that will be used for recovering data during parity regeneration

A
B
C
0 XOR 0->0
0 XOR 1->1
1 XOR 0->1
1 XOR 1->0

Tuesday, October 26, 2010

Get date information from commands.

Get the Date output.
===============
$ date +%d -- Date
26
$ date +%D -- Date format
10/26/10
$ date +%m -- Month
10
$ date +%b -- Month
Oct
$ date +%M -- Minutes
45
$ date +%W -- Week of the year
43
$ date +%w -- Week of the day
2
$ date +%Y -- Year
2010
$ date +%y -- Year (last 2 digits)
10
$ date +%n -- New line
$ date +%l -- hour (0..12)
4
$ date +%k -- hour (0..23)
16
$ date +%N -- nano seconds
855022663
$ date +%T -- time format
16:48:14
-----------------------------------
$ set `date`
$ echo $1
Tue
$ echo $2
Oct
$ echo $3
26
$ echo $4
16:52:45
$ echo $5
IST
$ echo $6
2010
$ echo $# -- Total number of command variables.
6
-----------------------------------------------
date |cut -d" " -f1 # Replace f1 to f2,3,4,5,6 to get the values.
Tue
-------------------------
You can run a loop to check the day and run some commands according using case loop.

case `date |cut -d" " -f1` in
Mon) commands ;;
Tue) commands ;;
Wed) commands ;;
...
esac

Monday, October 25, 2010

Check top CPU or Memory utilisation process.

Find Processes that uses maximum processor utilisation
#ps -eo pid,ppid,pcpu,rss,cmd --sort pcpu

Find Processes that uses maximum Memory utilisation
#ps -eo pid,ppid,pcpu,rss,cmd --sort rss

Kill multiple jobs OR Kill all jobs of a particular user

# Create a list of specific jobs of a user
ps -ef |grep [username]|grep [jobname eg. telnet]|awk '{print $2}' > /tmp/fileout
while read userpid; do kill -9 $userpid;done < /tmp/fileout

Wednesday, September 08, 2010

Modify FreeNas configuration file

Editing of FreeNAS configure file is not possible from the FreeNAS shell.
To modify the configuration - Eg., /etc/fstab on FreeNAS

share /etc directory using NFS / CIFS share - ( Make sure its not a read only share)
mount /etc share on linux partition.
Use vi tool to modify the configuration file and save the configuration.

:) done.

Tuesday, September 07, 2010

perl module checks & installation

[root@mail ~]# instmodsh
Available commands are:
l - List all installed modules
m - Select a module
q - Quit the program

perldoc perlmodlib - Will display all modules that are installed along with the standard perl packages
perldoc perllocal - Will display all additional modules that were installed.


-----------------------
To install perl modules - (Make sure your system is connected to internet)
perl -MCPAN -e shell
cpan> o conf - will display the configurations
cpan> o conf init - Will reinitiate the configuration.
cpan> install Bundle::cpan --- Sample command to install modules.



Tuesday, August 17, 2010

Change Solaris Server hostname

Change the hostname in the following files:

/etc/nodename
/etc/hostname.*interface
/etc/inet/hosts
/etc/inet/ipnodes

Wednesday, August 04, 2010

Reverse proxy configuration on Apache

Apache Server side configuration.

mod_proxy_html installation reference link http://ubuntuforums.org/showthread.php?t=350836

wget http://apache.webthing.com/mod_proxy_html/mod_proxy_html.tgz
tar -xvzf mod_proxy_html.tgz
cd mod_proxy_html
-----------------------
apt-get install apache2-prefork-dev
apt-get install libxml2-dev
ln -s /usr/include/libxml2/libxml /usr/include/libxml
apxs2 -i -c mod_proxy_html.c
------------------------------------------

Modules for proxy settings
--------------------------------
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadFile /usr/lib/libxml2.so.2
-----------------------------------------------------------------------------

NameVirtualHost *:443
NameVirtualHost *:80

ServerName linuxmediaserver.mlmail.net
DocumentRoot /var/www/
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
ProxyRequests Off
Order deny,allow
Allow from all
ProxyPass / http://server.domain.com/
ProxyPassReverse / http://server.domain.com/

ServerName linuxmediaserver.mlmail.net
DocumentRoot /var/www/
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/mycert.pem #---------------> Generated certificate
ProxyRequests Off
Order deny,allow
Allow from all
ProxyPass / http://server.domain.com/
ProxyPassReverse / http://server.domain.com/

Monday, July 26, 2010

Apache Bench test

Apache bench test can be done to find the apache server performance.
We can run multiple simultaneous connections to the apache server and check the server response time.

Download apace bench marker from the below site.
http://www.filewatcher.com/m/ApacheBench-0.62.tar.gz.61627.0.0.html


Install Apache Bench mark -
wget ftp://ftp.eenet.ee/pub/cpan/authors/id/A/AD/ADIRAJ/ApacheBench-0.62.tar.gz
mv ApacheBench-0.62.tar.gz to /opt

tar -zxvf ApacheBench-0.62.tar.gz
cd /opt/ApacheBench-0.62
perl Makefile.PL
make
make test (requires Term::ReadKey for execute() test)
make install

Now AB is installed you can run the testing from command.
ab -n 10000 -c 5 http://(servername)/index.html

-n requests Number of requests to perform
-c concurrency Number of multiple requests to make

Result
=====
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking xxx.xxx.xxx.xxx (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests


Server Software: Apache/2.2.10
Server Hostname:
Server Port: 80

Document Path: /index.html
Document Length: 197 bytes

Concurrency Level: 10
Time taken for tests: 6.98762 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 4440000 bytes
HTML transferred: 1970000 bytes
Requests per second: 1639.68 [#/sec] (mean)
Time per request: 6.099 [ms] (mean)
Time per request: 0.610 [ms] (mean, across all concurrent requests)
Transfer rate: 710.80 [Kbytes/sec] received

=========

Sunday, June 27, 2010

Powering ON or OFF system using wake on LAN

http://www.tjansson.dk/?p=83
http://www.raymond.cc/blog/archives/2007/10/21/how-to-remotely-turn-on-computer-from-lan-and-wan/

Tuesday, June 08, 2010

how to get LDAP query output of more than 1000 objects

You can always change the LDAP query output from 1000 to the number of your choice on AD using ntdsutil.exe feature. - Caution - this is not the recommended option as this will increase the maxpagefilesize on your server which can be a server performance overload.
===============================

C:\WINDOWS\system32\ntdsutil.exe: ldap policies
ldap policy: connections
server connections: connect to server lab15cust5
Binding to lab15cust5 ...
Connected to lab15cust5 using credentials of locally logged on user.
server connections: q
ldap policy: show values
MaxPageSize 2000
ldap policy: set maxpagesize to 3000
ldap policy: show values
Policy Current(New)
MaxPageSize 2000(3000)
ldap policy: commit changes
ldap policy: show values
Policy Current(New)
MaxPageSize 3000
ldap policy: q

=====================================
Other way of getting more than 1000 results without modifying the maxpagefilesize is by using -E option along with Paged Results option.
ldapsearch -E pr=100/noprompt -H ldap://xxx.xxx.xxx.xxx -x -b "dc=doman,dc=com" -D "domain\username" -W
This will show all the ldap search results even if there is max of 1000 search output results.

Monday, April 26, 2010

process status - Linux

ps auxf -- Will give the processes and child processes information in hierarchical order (grpahically)
ps -p [id]-- Process info based on JobID
ps auU [username] -- All process run by a specific user

Thursday, March 18, 2010

Converstion of second timestamp to date timestamp

Some of the login information is saved on the second time stamp. This will need to be converted into a format that your system can understand.

[root@mail ~]# date;date +%s
Fri Mar 19 10:40:32 IST 2010
1268975432

To convert the second back to IST format

[root@mail ~]# date -d '1970-01-01 1268975432 sec GMT'
Fri Mar 19 10:40:32 IST 2010

[root@mail ~]# date -d@1268975432
Fri Mar 19 10:40:32 IST 2010

=================================

Thursday, March 04, 2010

Setting up of SVN and WebSVN.

Procedure to create a SVN
---------------------------

Package requirement:
================
  • subversion.i386 1.6.5-1 installed
  • subversion-devel.i386 1.6.5-1 installed
  • subversion-perl.i386 1.6.5-1 installed
  • subversion-python.i386 1.6.5-1 installed


Creation of SVN Directory and initialization of SVN
SVN directory location is /srv/svn/repos
  • mkdir /srv/svn/repos
  • svnadmin create --fs-type fsfs /srv/svn/repos
Import the initial code into SVN
  • svn import -m "Initial import" project1 file:///home/project1code
Configure SVN to view changes using WebSVN.

Download a copy of WebSVN on the server
  • http://websvn.tigris.org/servlets/ProjectDocumentList;jsessionid=24F17B3F5279F7DE3BB39F064A2C4A03

Copy the the extracted websvn to /var/www/html/webSVN
  • cp /var/www/html/webSVN/include/distconfig.php to /var/www/html/webSVN/include/config.php
  • modify /var/www/html/webSVN/include/config.php
$config->setDiffPath('/usr/bin/');
$config->setSedPath('/bin/');
$config->setTarPath('/bin/');
$config->setGZipPath('/bin/');
$config->setZipPath('/usr/bin/');
$config->parentPath('/srv/svn/repos'); -------- > Path of your repository
$config->addTemplatePath($locwebsvnreal.'/templates/calm/');
$config->addTemplatePath($locwebsvnreal.'/templates/BlueGrey/');
$config->addTemplatePath($locwebsvnreal.'/templates/Elegant/');
$config->setTemplatePath($locwebsvnreal.'/templates/BlueGrey/');

Now from your web-browser access http://servername/webSVN - this should give you access to your svn thru web interface

Friday, October 30, 2009

vi commands for solaris

Restrict ssh/ftp user from leaving the home directory - Or grant access to specific directory

This script is tested from Bash and Ksh shell.
Edit the user .profile and add the following lines.
################################
typeset -xf _cd
function _cd
{
\cd $*
if grep "${PWD}" /.approved_dirs > /dev/null 2>&1; then
return
fi
\cd $OLDPWD
return
}
alias cd=_cd
####################################
This script will check if the user is trying to do a cd to any other folder other than listed in .approved_dirs. If its listed, it will allow the user to cd to the folder else it will drop the uesr to his old pwd directory. Which is his home directory.
To restrict the user from editing his .profile or .approved_dirs change the permission to 644 for the files.
Pitfall: If the user uses "alias cd=cd" then the above script will not work. Or if th user changes the default shell, the settings will fail. Preferably can be used for sftp user.
This document is picked from the link below - Many thanks to the contributor - I am placing it here so that its easily accessible to me and others refereing my blog for help.

Thursday, October 22, 2009

Wednesday, October 07, 2009

Perl script to create a Exchange Enabled contact on AD

#!/usr/bin/perl

use Net::LDAP;

$Ad = Net::LDAP->new("sogolab.com", version => 3, port => 389) or die("failed $!");
print "Failed connecting" if(!$Ad);

## bind as an admin or someone who has privileges to create an user
$b = $Ad->bind(dn => 'CN=Administrator,CN=Users,DC=sogolab,DC=com', password => 'xxxxxxx') or die("failed $!; ".$b->error);

$result = $Ad->add( 'cn=Thomas T,cn=Users,DC=sogolab,DC=com',
attr => [
'cn' => 'Thomas T',
'sn' => 'Thomas',
'mail' => 'thomas@sogolab.com',
'targetAddress' => 'SMTP:sam@kmail.com',
'mAPIRecipient' => 'FALSE',
'mailNickname' => 'Thomas',
'internetEncoding' => '1310720',
'objectclass' => ['top','person','organizationalPerson','contact' ]]

);

$result->code && warn "failed to add entry: ", $result->error ;

Monday, October 05, 2009

Perl script to create AD User from Unix Server

#!/usr/bin/perl

use Net::LDAP;

$Ad = Net::LDAP->new("sogolab.com", version => 3, port => 389) or die("failed $!");
print "Failed connecting" if(!$Ad);

## bind as an admin or someone who has privileges to create an user
$b = $Ad->bind(dn => 'CN=Administrator,CN=Users,DC=sogolab,DC=com', password => 'XSSSXXX') or die("failed $!; ".$b->error);

$result = $Ad->add( 'cn=Ratish Kumar,cn=Users,DC=sogolab,DC=com',
attr => [
'cn' => 'Ratish Kumar',
'sn' => 'Ratish',
'mail' => 'ratish@kmail.com',
'sAMAccountName' => 'ratish',
'userAccountControl' => '544',
'objectclass' => ['top', 'person','organizationalPerson','user' ]]
);

$result->code && warn "failed to add entry: ", $result->error ;

Thursday, September 24, 2009

Change vsftpd anonymous login default directory

The default anonymous login directory is /var/ftp/
To change the default from /var/ftp to any other directory (say /data)
edit /etc/vsftpd/vsftpd.conf file add entry.
local_root=/data
save the file and restart the vsftpd services using command
services vsftpd restart.

Change the default ftp user account home folder to point to the new location.
before change ftp account info in /etc/passwd file
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
chmod -d /data ftp # To change the home directory for ftp user.
ftp:x:14:50:FTP User:/data:/sbin/nologin
Now when you login as anonymous user, the login directory will be /data.

Saturday, July 04, 2009

http check parameters.

httpd -t - will check the configuration syntax of the http.conf file. - Recommended after any changes to the http.conf file.

httpd -S - Will check and report the virutal machine configuration information.

httpd -l - will list the compiled modules during the installation.

httpd -M - Will show the loaded modules in apache.

httpd -v - Will show the running apache version

httpd -V - will show the exhaustive information about the apache server built.

Monday, June 01, 2009

set http/ftp proxy - Cmd line

For Windows:set http_proxy=http://proxy.example.com:8080
For Linux/Unix:export http_proxy=
http://proxy.example.com:8080
export ftp_proxy=http://proxy.example.com:8080
export http_proxy="http://username:password@proxy.example.com:8080"
–proxy=on
–proxy=off

Thursday, May 07, 2009

Command to collect the HBA details on SUN

On Solaris 9 Use the following commands to collect info.
luxadm -e port
cfgadm -al
prtdiag -v
prtconf -pv grep -i wwn

Solaris 10 Use command.
fcinfo hba-port

Thursday, April 30, 2009

Send Mail from CronJob result mail to users other than root

Mailing Cronjob results to a other users other than root.
0 1 * * 1-6 /location of script mutt -s "Daily Webex Report" email1@email.com,email2@email.com 2>&1

Friday, April 17, 2009

Automatic SFTP to server to get files - Using Expect

#!/usr/bin/expect
set DAY [exec date +%Y-%m-%d]
set timeout -1
spawn /usr/bin/sftp retheesh@3.212.44.46
#spawn sftp retheesh@3.212.44.46
expect "password:";
send "1\r";expect "
sftp>"send "lcd /home/retheesh/sftp/\r"
expect "sftp>"send "cd /home/retheesh/destination/\r"
expect "sftp>"send "mget *$DAY*.csv\r"
expect "sftp>"send "bye\r"
interact

ftp using Shell Script
#!/usr/bin/sh
#DAY=`date +%Y%m%d`
ftp -v -n "3.xxx.xxx.xxx" << cmd
user "anonymous" "test@test.com"
cd retheesh
lcd /root/Ironport/
bin
hash
get filename
quit

Monday, April 13, 2009

Monitor your server using customise OID.
----------------------------------------------
rwcommunity commstring xxx.xxx.xxx.xxx
com2sec local localhost public
com2sec mon_server xxx.xxx.xxx.xxx commstring
##### Second, map the security names into group names:
group MyROSystem v2c mon_server
##### Third, create a view for us to let the groups have rights to:
view all included .1 80
view system included .iso.org.dod.internet.mgmt.mib-2.system
##### Finally, grant the 2 groups access to the 1 view with different
# write permissions:
# context sec.model sec.level match read write notif
access mon_server "" any noauth exact system none none

##CUSTOM OID
exec /bin/sh /location-of-the-script.sh
exec /bin/sh /location-of-the-script1.sh
exec /bin/sh /location-of-the-script2.sh
service snmdp restart

To test the first,second and so on custom script response using snmpwalk client
snmpwalk -v2c -c commstring 1.3.6.1.4.1.2021.8.1.101.1
snmpwalk -v2c -c commstring 1.3.6.1.4.1.2021.8.1.101.2
snmpwalk -v2c -c commstring 1.3.6.1.4.1.2021.8.1.101.3

To collect all the snmp OID parameters.
snmpwalk -v2c -c commstring -O n
OID for HP servers can be found under file /opt/hp/hp-snmp-agents/mibs/cmaobjects.mibdef
Note: HP Proliant Support Pack should be installed.
======
Below given tips are from "http://agiletesting.blogspot.com/2005/10/mini-howto-2-system-monitoring-via.html" Thanks to the wonderful writeup
=====

Document sourced from http://www.debianadmin.com/linux-snmp-oids-for-cpumemory-and-disk-statistics.html

Thank you for sharing


Paritions can be monitored by making parition entries in the /etc/snmp/snmpd.conf file
disk /
disk /boot
disk /usr
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.9.1.7.1 ( 1 is for / 2 for /boot and so on)
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.9.1.7.2
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.9.1.7.3

For monitoring processes make entries in /etc/snmp/snmpd.conf
proc java
proc postmaster
proc mysqld
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.2.1.5.1 (1 is for java 2 for postmastet and so on)
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.2.1.5.2
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.2.1.5.3

For Load Monitoring make following entires in /etc/snmp/snmp.conf file.
load 5 5 5
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.10.1.3.1 ( 1 for 1min, 2 for 5min, 3 for 15min usage report)
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.10.1.3.2
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.10.1.3.3

For various CPU Utilisation Metrics use
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.11
For various Memory Utilisation Metrics use
snmpwalk -v2c -c "xxxx" .1.3.6.1.4.1.2021.4

To get the OID from a client.
snmpwalk -v2c -On -c "XXXXX" Servername
This will list all the servers parameter and the OID details.

CPU
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0

Memory Statistics

Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0

Disk Statistics

The snmpd.conf needs to be edited. Add the following (assuming a machine with a single ‘/’ partition):

disk / 100000 (or)

includeAllDisks 10% for all partitions and disks

The OIDs are as follows

Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1
Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1
Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1
Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1
Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1
Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1
Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1

System Uptime: .1.3.6.1.2.1.1.3.0

Examples

These Commands you need to run on the SNMP server

Get available disk space for / on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.9.1.7.1

this will return available disk space for the first entry in the ‘disk’ section of snmpd.conf; replace 1 with n for the nth entry

Get the 1-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.1

Get the 5-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.2

Get the 15-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.3

Get amount of available swap space on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.4.4.0

Monday, April 06, 2009

#!/bin/bash################################################################################## Script for parsing IronPort logs for collecting top mail senders every hour on Iron Port Server ################################################################################## #####Collecting the Program Start time##### echo "Program Start time `date +%T`" > /tmp/time ##### Check if the Script is started correctly ##### if [ $# != 1 ]; then echo "Improper syntax" "Expected syntax [script.sh ]"exitelseecho ""fi ##### Setting Variable #####ORG_FILE=$1MAILTO="xssss123@xdwcs.com xssss1234@xdwcs.com"MAIL=/usr/bin/mutt ##### Collecting only required Data from the IronPort Logs ##### grep "interface PublicNet (3\RID [0-9]" $ORG_FILE > /tmp/newreffileSOURCE_FILE=/tmp/newreffile ##### Collecting the HOURS for which the logs to be parsed #####awk '{print $4}' $SOURCE_FILE cut -c 1,2 uniq > /tmp/hrsfileHRSFILE=/tmp/hrsfile ###Collecting data for hour wise ####while read HRSdo grep " $HRS:" $SOURCE_FILE > /tmp/reffileREFFILE=/tmp/reffile DATESTAMP=`head -1 $SOURCE_FILE awk '{print $1,$2,$3}'`TIMESTAMP=`echo $HRS`echo "====================================" > /tmp/masterecho " TOP MAIL SENDERS FOR $DATESTAMP at $HRS" >> /tmp/masterecho "====================================" >> /tmp/master #### Collecting the ICID and IP address details #####grep "(3." $SOURCE_FILE > /tmp/ipfileIPFILE=/tmp/ipfile ################################################# ##### COLLECT ALL UNIQ ICID FROM THE REFERECE FILE #####grep "(3." $REFFILE uniq -u awk '{print $10}'grep '^[0-9]' > /tmp/icidfileICID=/tmp/icidfile while read LINEdo TOTALMAILS=`grep $LINE $SOURCE_FILE grep RID wc -l` IPADDRESS=`grep $LINE $IPFILE grep "(3." awk '{print $15}'` echo -e "$IPADDRESS \t\t $TOTALMAILS" >> /tmp/outputdone < $ICID ##### Collect the Uniq IP address and the mail counts #####awk '{print $1}' /tmp/output sort -u > /tmp/uniqipUNIQ=/tmp/uniqip while read IPdo MCOUNT=`grep $IP /tmp/output awk '{ sum += $2 };END { print sum }'`# echo "$ORG_FILE - HOUR $HRS" > /tmp/result echo -e "$MCOUNT \t \t $IP" >> /tmp/resultdone < $UNIQ RESULT=/tmp/result sort -rn $RESULT head -10 >> /tmp/mastersort -rn $RESULT > /tmp/mailattachment.txtMATTACHMENT=/tmp/mailattachment.txt mv $RESULT $ORG_FILE-`date +%T-%F-%N`echo "Program End time `date +%T`" >> /tmp/timemutt -s "Top 10 Mail Senders" -a $MATTACHMENT $MAILTO < /tmp/mastersleep 10rm -f /tmp/outputdone < $HRSFILE ######### END OF PROGRAM ##############

Tuesday, March 31, 2009

NTP Configuration file.

NTP Configuration,
vi /etc/ntp.conf
restrict default nomodify notrap noquery
restrict 127.0.0.1
server (NTP Server IP/Name)
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
authenticate yes
restrict (NTP Server IP/Name) mask 255.255.255.255 nomodify notrap noquerykeys /etc/ntp/keys

Friday, January 09, 2009

Send SMS to mobile thru email.

to address: countrycodemobilenumer@airtelkk.com (airtelkk stands for Airtel in Karnataka)
subject - short subj.
short - message in body.

and send it away.

Monday, December 29, 2008

HPACUCLI commands

To find HARDWARE RAID and DISK information (For HP servers / Smart Array control card – Need “hpacucli” rpm)+++++++ctrl all showctrl slot=0 showctrl slot=1 logicaldrive all show ctrl slot=1 physicaldrive all show+++++++[root@Server01 root]# hpacucliHP Array Configuration Utility CLI 7.40.7.0Detecting Controllers...Done.Type "help" for a list of supported commands.Type "exit" to close the console.=> ctrl all show
Smart Array 5i in Slot 0 ()
=> ctrl all show status
Smart Array 5i in Slot 0 Controller Status: OK Cache Status: OK
=> ctrl slot=0 show
Controller Smart Array 5i in Slot 0 Bus Interface: pci slot: 0 RAID 6 (ADG) status: False Controller Status: OK Chassis Slot: 1 Hardware Revision: Rev B Firmware Version: 2.58 Rebuild Priority: Low Expand Priority: Low Surface Scan Delay: 15 sec Cache Board Present: True Cache Status: OK Accelerator Ratio: 100/0 (read/write) Read Cache Size: 48 MB Write Cache Size: 0 MB Total Cache Size: 48 MB Battery Backed Cache Size: 0 MB Non Battery Backed Cache Size: 48 MB Battery Pack Count: 0
=> ctrl slot=0 array all show
Smart Array 5i in Slot 0 array A (Parallel SCSI, Unused Space: 0 MB)
=> ctrl slot=0 logicaldrive all show
Smart Array 5i in Slot 0
array A logicaldrive 1 (33.9 GB, 1+0, OK)
=> ctrl slot=0 physicaldrive all show
Smart Array 5i in Slot 0
array A physicaldrive 2:0 (port 2:id 0 , Parallel SCSI, 36.4 GB, OK) physicaldrive 2:1 (port 2:id 1 , Parallel SCSI, 36.4 GB, OK)

---------------

/sbin/hplog -v will show all the Hardware alert logs regarding th HP Server

/sbin/hplog -t -- Display current thermal sensor data

/sbin/hplog -f Display current fan data

/sbin/hplog -p Display current power data

remove blank spaces, tabs and blank lines from file.

tr -d ' \t\n\r' < filename

Thursday, August 28, 2008

Thursday, August 21, 2008

=VLOOKUP(E3,C:C,1,0)

Vlookup for checking the difference between two columns.

E3 is from the column where you want compare.C:C is the entire column where the other set of data is there for comparision.

1,0 - :D no idea.... ---- But it works...

Friday, March 28, 2008

NetBackup Commands

backup Version Details
--------------------------
more /usr/openv/netbackup/bin/version

Media Manager Version
-----------------------
more /usr/openv/volmgr/bin/version

Check the Status of the Tape Drive
----------------------------------
/usr/openv/volmgr/bin/tpconfig -d or -dl
/usr/openv/volmgr/bin/vmoprcmd -d
UP/Down the Tape Library.

-------------------------
/usr/openv/volmgr/bin/vmoprcmd -up 0 #--- UP
/usr/openv/volmgr/bin/vmoprcmd -down 0 #--Down

Check the NetBackup Services.
--------------------------------
/usr/openv/netbackup/bin/bpps -a
Stop / Start the NetBakcup Serivce
-----------------------------------
/usr/openv/netbackup/bin/goodies/K77netbackup #---Kill all the services.
/usr/openv/netbackup/bin/goodies/S77netbackup # ---- Start all the services

Run the Inventory Check on the Tape Library
---------------------------------------------
/usr/openv/volmgr/bin/vmcheckxxx -rt tld -rn 0

Update the Library content to the Scratch Pool (NetBackup)
------------------------------------------
/usr/openv/volmgr/bin/vmupdate -rt tld -rn 0

Netbackup Menu Window for Netbackup operations
-------------------------------------------------
/usr/openv/netbackup/bin/bpadm

Check the Available Media on the Backup server
--------------------------------------
/usr/openv/netbackup/bin/goodies/available_media #---------- From Catalogue
/usr/openv/volmgr/bin/vmquery -rn 0 -bx #-----------From Tape Library.

View the contents of the Tape
------------------------------
/usr/openv/netbackup/bin/admincmd/bpimmedia -L -mediaid R011L1

Expire the Media details from the Catalogue
-----------------------------------------
/usr/openv/netbackup/bin/admincmd/bpexpdate -d 0 -ev R011L1 -force

Delete the contents of a Media
-------------------------------------
/usr/openv/netbackup/bin/admincmd/bplabel -ev R011L1 -d dlt -p NetBackup

List all the Client Backup image List details.
------------------------------------------
/usr/openv/netbackup/bin/admincmd/bpimagelist -U

Freeze a Media
---------------
/usr/openv/netbackup/bin/admincmd/bpmedia -freeze -ev R013L1

Check the Backup Status
--------------------------
/usr/openv/netbackup/bin/admincmd/bpdbjobs -summary
/usr/openv/netbackup/bin/admincmd/bpdbjobs -report #------ Will give more exhaustive information.

Check all the Class files information on Master Server
----------------------------------------------------
/usr/openv/netbackup/bin/admincmd/bpcllist -allclasses -U
/usr/openv/netbackup/bin/admincmd/bpcllist adhoc-gejpfp1_root -U #---------- Individual Class file.

Set the Class file as Active/Inactive
-------------------------------------
/usr/openv/netbackup/bin/admincmd/bpclinfo adhoc-gejpfd1-6206323 -modify -active #-------- Set Active
/usr/openv/netbackup/bin/admincmd/bpclinfo adhoc-gejpfd1-6206323 -modify -inactive # -------- Set Inactive.
Check the Status of the Backup Status. (Get the Active Backup ID from bpdbjobs -report)
--------------------------------------
/usr/openv/netbackup/bin/admincmd/bperror -jobid 13860 -U #----- Take the Job ID from here.
tail -f /usr/openv/netbackup/db/jobs/13870.1206700777.t #------- File will show which file is getting written.

Check the Tape Library Cleaning Status
-------------------------------------
/usr/openv/volmgr/bin/tpclean -L
/usr/openv/netbackup/bin/goodies/cleanstats

Reset the Cleaning Status to Zero
--------------------------------
/usr/openv/volmgr/bin/tpclean -M Drive0

Add Tape to the Clean Tape pool (None)
---------------------------------------
/usr/openv/netbackup/bin/admincmd/bplabel -ev Q949L1 -d dlt_clean -p None

View Rule for Cleaning Tape
------------------------------
/usr/openv/volmgr/bin/vmrule -listall

Add/Remove rule for cleaning Tape.
-----------------------------------
/usr/openv/volmgr/bin/vmrule -add Q949L1 dlt2_clean None 25 "Cleaning Tape"
/usr/openv/volmgr/bin/vmrule -del Q949L1 dlt2_clean None 25 "Cleaning Tape"

Manually Clean the Tape Drive
-----------------------------
/usr/openv/volmgr/bin/tpclean -C Drive0

Thursday, December 20, 2007

Programs

To read lines from a file and echo the line --- (do can be tweaked to match the requirement)
while read myline;do echo $myline; done < inputfile

Tuesday, July 24, 2007

Introduce LMV drives to Linux OS

Introducing LVM drives (storage) to new operating system.
====================================

When lvm drives are introducted to a new operating system. They will not be detected logical volumes.

vgscan - Will detect all the available logical volumes and make necessary enteries in the lvm configuation.

# vgscan Reading all physical volumes. This may take a while... Found volume group "lvm_data3" using metadata type lvm2
Found volume group "lvm_data2" using metadata type lvm2
Found volume group "lvm_data1" using metadata type lvm2

# lvscan
inactive '/dev/lvm_data3/lvm_bkp' [271.00 GB] inherit
inactive '/dev/lvm_data2/lvm_stores' [169.00 GB] inherit
inactive '/dev/lvm_data1/lvm_redo' [60.00 GB] inherit
inactive '/dev/lvm_data1/lvm_log' [30.00 GB] inherit
inactive '/dev/lvm_data1/lvm_conf' [20.00 GB] inherit
inactive '/dev/lvm_data1/lvm_mysql' [50.00 GB] inherit
inactive '/dev/lvm_data1/lvm_index' [25.00 GB] inherit
inactive '/dev/lvm_data1/lvm_lgr' [35.00 GB] inherit

The devices are detected as inactive to make the devices active

vgchange -ay lvm_data3
vgchange -ay lvm_data2
vgchange -ay lvm_data1

lvscan will show all the drives as active.
#lvscan
ACTIVE '/dev/lvm_data3/lvm_bkp' [271.00 GB] inherit
ACTIVE '/dev/lvm_data2/lvm_stores' [169.00 GB] inherit
ACTIVE '/dev/lvm_data1/lvm_redo' [60.00 GB] inherit
ACTIVE '/dev/lvm_data1/lvm_log' [30.00 GB] inherit
ACTIVE '/dev/lvm_data1/lvm_conf' [20.00 GB] inherit
ACTIVE '/dev/lvm_data1/lvm_mysql' [50.00 GB] inherit
ACTIVE '/dev/lvm_data1/lvm_index' [25.00 GB] inherit
ACTIVE '/dev/lvm_data1/lvm_lgr' [35.00 GB] inherit

you should be able to mount the filesystem now