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

Friday, June 29, 2007

commands

1. List the files in current directory sorted by size ? - ls -l grep ^- sort -nr
2. List the hidden files in current directory ? - ls -a1 grep "^\."
3. Delete blank lines in a file ? - cat sample.txt grep -v ‘^$’ > new_sample.txt
4. Search for a sample string in particular files ? - grep “Debug” *.confHere grep uses the string “Debug” to search in all files with extension“.conf” under current directory.
5. Display the last newly appending lines of a file during appendingdata to the same file by some processes ? - tail –f Debug.logHere tail shows the newly appended data into Debug.log by some processes/user.
6. Display the Disk Usage of file sizes under each directory in currentDirectory ? - du -k * sort –nr (or) du –k . sort -nr
7. Change to a directory, which is having very long name ? - cd CDMA_3X_GEN*Here original directory name is – “CDMA_3X_GENERATION_DATA”.
8. Display the top most process utilizing most CPU ? - top –b 1
9. Set the Display automatically for the current new user ? - export DISPLAY=`eval ‘who am i cut -d"(" -f2 cut -d")" -f1′`Here in above command, see single quote, double quote, grave ascent is used. Observe carefully.
10. Display the processes, which are running under yourusername ? - ps –aef grep MaheshvjHere, Maheshvj is the username.
11. List some Hot Keys for bash shell ? - Ctrl+l – Clears the Screen. Ctrl+r – Does a search in previously given commands in shell. Ctrl+u - Clears the typing before the hotkey. Ctrl+a – Places cursor at the beginning of the command at shell. Ctrl+e – Places cursor at the end of the command at shell. Ctrl+d – Kills the shell. Ctrl+z – Places the currently running process into background.
12. Display the files in the directory by file size ? - ls –ltr sort –nr –k 5
13. How to save man pages to a file ? - man col –b > Example : man top col –b > top_help.txt
14. How to know the date & time for – when script is executed ? - Add the following script line in shell script.eval echo "Script is executed at `date`" >> timeinfo.infHere, “timeinfo.inf” contains date & time details ie., when script is executed and history related to execution.
15. How do you find out drive statistics ? - iostat -E
16. Display disk usage in Kilobytes ? - du -k
17. Display top ten largest files/directories ? - du -sk * sort -nr head
18. How much space is used for users in kilobytes ? - quot -af
19. How to create null file ? - cat /dev/null > filename1
20. Access common commands quicker ? - ps -ef grep -i $@
21. Display the page size of memory ? - pagesize -a
22. Display Ethernet Address arp table ? - arp -a
23. Display the no.of active established connections to localhost ? - netstat -a grep EST
24. Display the state of interfaces used for TCP/IP traffice ? - netstat -i
25. Display the parent/child tree of a process ? - ptree Example: ptree 1267
26. Show the working directory of a process ? - pwdx Example: pwdx 1267
27. Display the processes current open files ? - pfiles Example: pfiles 1267
28. Display the inter-process communication facility status ? - ipcs
29. Alternative for top command ? - prstat -a
30. Run grep for multiple strings? - grep "string1\string2"
31 search multiple strings on the same line egrep 'string1.*string2' filename
32. how to remove to values from using sed - sed 's/value1\value2//g'

Sed
----
change value in a file recursively and display ? - sed 's/oldvalue/newvalue/g' filename
Remove a special character from file eg; "/" - sed -e 's,/,,g' Test - Change the delimiter to ","
Use underscore ( _) as a paramter when you are trying to search and replace anything that involves front/backslash - This avoids the delimiter and the front slash confussion
Eg: To change /usr/sbin/test to /var/log/test in a file
1. sed 's_/usr/sbin/test_/var/log/test_g' file > file-new
2. sed -s '/startline/,/endline/p' filename -- This will collect all the lines between startline and endline including both startline and endline.
3. sed -n 5p -- Will print the line5 from the file. - To read a particular line from a file
4. awk NR==5 -- -- Will print the line5 from the file. - To read a particular line from a file
5. cat output| awk '{FS=" " ; $0=$0 ; print $NF"|"$0}' | sort -rn | cut -d"|" -f2 |head -15 -- Sort file based on the last field with irregular number of fields

5. From line
open("/lib64/librt.so.1", O_RDONLY) = 3
----------------
$sed -n 5p ls.output |
sed 's/.*.1//g'
", O_RDONLY) = 3
# Will show everything after .1 from the above line
------------------
$sed -n 5p ls.output |
sed 's/1.*//g'
open("/lib64/librt.so.
# Will show everything before 1 as output

Good Link for SED - http://www.grymoire.com/Unix/Sed.html
Another very good link for sed http://sed.sourceforge.net/sed1line.txt

find
----
Display the all files recursively - find . -depth -print
Search file recursively - find /home/david -name 'index*'
Search file recursively (Case insensitive) -find /home/david -iname 'index*'
find /mp3collection -name '*.mp3' -size -5000k
$ find / -size +10000k
ind /home/david -amin -10 -name '*.c'
$ find /home/david -atime -2 -name '*.c'
$ find /home/david -mmin -10 -name '*.c'
$ find /home/david -mtime -2 -name '*.c'
ind /mp3-collection -name 'Metal*' -and -size +10000k
$ find /mp3-collection -size +10000k ! -name "Metal*"
$ find /mp3-collection -name 'Metal*' -or -size +10000k

Cut
----
Cut output from the line to get all usernames from the file - Eg.filename.txt
/kolab/var/imapd/spool/domain/m/sample.domain/s/user/suresh/Calendar/1.
/kolab/var/imapd/spool/domain/m/sample.domain/s/user/sathish/Calendar/11.

cat filename.txt cut -d/ -f11
Explaination - This will set "/" as delimiter and gives field 11 - suresh and sathish as output


Track command history based on time
export HISTTIMEFORMAT="%x %X " in .bashrc of shell

Command to extract contents from an RPM file
rpm2cpio cpio -ivd

Command to view the contents of an RPM file
rpm -qpil /path/to/the/rpmfile

Wednesday, June 27, 2007

SysStat Installation & configuration

Check whether the rpm is installed.
#rpm -qa grep -i sysstat

If sysstat is not installed install it
#rpm -ivh sysstat-5.0.5-5.rhel3.i386.rpm

Modify /etc/cron.d/systat :
# run system activity accounting tool every 1 minute i.e collect 2 sample/min with 30 sec interval.
*/1 * * * * root /usr/lib/sa/sa1 30 2

Note : Comment the existing entry which collects data every 10 min ( 1 sample/10 min) # */10 * * * * root /usr/lib/sa/sa1 1 1

Restart crond service.# service crond restart

To get CPU utilization information :
# sar -f /var/log/sa/sadd -u more
where dd represents day of the month.

To get memory utilization output :# sar -f /var/log/sa/sadd -r more
Where dd represents day of the month.

Wednesday, December 06, 2006

cool codes........


Open any of your fav site. paste this on the url location and hit enter


java-script:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images ; DIL=DI.length; function A(){for(i=0;