If any files accidentally deleted and needs to be recovered. First look in lost+found folder.
If not found follow the below steps.
Mount the filesystem in read only to avoid any rewrites on the disk block
# mount -o remount ro /dev/sdx /mntpoint.
If the partition is a root filesystem - Boot the server in single user mode
# init 1
To recover a text file you can use grep command to recover the contents. For this you need to know any uniq word from the deleted file - Preferably the start of the file.
grep -a -B2 -A1000 'uniq_word' /dev/sdx > /tmp/filerecovered.txt
It means 2lines before the uniq_word found and 1000lines after the uniq_word found from the filesystem and save the content into filerecovered file. (ensure the destination folder is read-write mode.
===================
Recover other types of files
Use package foremost There is an excellent article published in howtoforge portal.
Welcome to my page. I am not an avid writer, but i am trying. Here you will find some of the fine snippets i came across which i would like to revisit given a chance. Some of the technical troublshooting which i encountered, which i would like to maintain here as ready reckoner. Please feel free to go around my pages. Bouquets and Brickbats are welcomed. :-)
Thursday, December 15, 2011
Friday, December 09, 2011
check the disk space availablity
Script to check the disk space and mail if the disk space availablity is below the warning or critical thresholds
### Variable declaration ####
WARN=75
CRITICAL=77
ADMINI_LABS="useremailaccount"
#### Collecting Disk space information #####
df -h |grep -vE 'tmpfs|Filesystem|cdrom'|awk '{print $5 " " $6}' > /tmp/disksize
while read output; do
diskusage=$(echo $output|awk '{print $1}' |cut -d% -f1 )
filesystem=$(echo $output |awk '{print $2}' )
if [ $diskusage -ge $WARN ] && [ $diskusage -le $CRITICAL ]; then
mail -s"WARNING: $(hostname) : Running out of space $filesystem $diskusage" $ADMIN_ILABS
elif [ $diskusage -ge $CRITICAL ]; then
mail -s "CRITICAL: $(hostname) : Running out of space $filesystem $diskusage" $ADMIN_ILABS
fi
done < /tmp/disksize
## File Clean up ##
rm -f /tmp/disksize
### Variable declaration ####
WARN=75
CRITICAL=77
ADMINI_LABS="useremailaccount"
#### Collecting Disk space information #####
df -h |grep -vE 'tmpfs|Filesystem|cdrom'|awk '{print $5 " " $6}' > /tmp/disksize
while read output; do
diskusage=$(echo $output|awk '{print $1}' |cut -d% -f1 )
filesystem=$(echo $output |awk '{print $2}' )
if [ $diskusage -ge $WARN ] && [ $diskusage -le $CRITICAL ]; then
mail -s"WARNING: $(hostname) : Running out of space $filesystem $diskusage" $ADMIN_ILABS
elif [ $diskusage -ge $CRITICAL ]; then
mail -s "CRITICAL: $(hostname) : Running out of space $filesystem $diskusage" $ADMIN_ILABS
fi
done < /tmp/disksize
## File Clean up ##
rm -f /tmp/disksize
Tuesday, November 08, 2011
Using CURL to get secure website information.
Create cookie jar for the URL login
curl -k --cookie-jar cjar --output /dev/null \
https://IPADDR/login
Passing the login credits to the site for fetching the information.
curl -k --cookie cjar --cookie-jar cjar \
--data 'username=USERNAME' \
--data 'password=PWD' \
--data 'form=login' \
--data 'action:Login=Login' \
--location \
--output /tmp/loginresutl.html \
https://IPADDR/login
Get the Secure Ironport information using the curl command using the cookie jar.
curl -l --cookie cjar \
--output /tmp/ironport_system_status.html \
https://IPADDR/monitor/reports/system_status
curl -k --cookie-jar cjar --output /dev/null \
https://IPADDR/login
Passing the login credits to the site for fetching the information.
curl -k --cookie cjar --cookie-jar cjar \
--data 'username=USERNAME' \
--data 'password=PWD' \
--data 'form=login' \
--data 'action:Login=Login' \
--location \
--output /tmp/loginresutl.html \
https://IPADDR/login
Get the Secure Ironport information using the curl command using the cookie jar.
curl -l --cookie cjar \
--output /tmp/ironport_system_status.html \
https://IPADDR/monitor/reports/system_status
Wednesday, October 19, 2011
Tuesday, October 18, 2011
Configuring & Managing DELL PERC array controller from Linux Operating System
MegaRAID Cli
-----------------
http://www.thegeekstuff.com/2009/05/dell-tutorial-create-raid-using-perc-6i-integrated-bios-configuration-utility/
http://tools.rapidsoft.de/perc/perc-cheat-sheet.html
Download
http://www.lsi.com/downloads/Public/Obsolete/Obsolete%20Common%20Files/dr_linux_2.20.4.6_as40.zip
HP Array Controller card configuration from Linux
---------------------------------------------------
http://www.datadisk.co.uk/html_docs/redhat/hpacucli.htm
---------------------------
View Enclosure Details
MegaCli -EncInfo -aALL
View Array Controller on Server
MegaCli -AdpAllInfo -aAll
View Physical disk attached to the Array Controller
MegaCli -PDList -aAll
---------------------------
View Types of RAID Supported by Array Controller Card.
MegaCli -AdpAllInfo -aAll|grep RAID
Create RAID 1 / 5 from MegaRAID Cli
MegaCli -CfgLdAdd -r1 [8:2, 8:3] -a0
8 = Enclosure Device ID Number - Can find it out from PDList information
2 & 3 = Disk Slot Number - Can find it out from PDList information
a0 - Adapter Number
MegaCli -CfgLdAdd -r5 [8:2, 8:3, 8:4] -a0
Raid 5 Creation
--------------------------------
View Virtual Device Information.
MegaCli -LDInfo -Lall -aALL
---------------------------------
Set disk state to offline
MegaCli -PDOffline -PhysDrv [8:3] -a0
MegaCli -PDList -aAll |egrep 'Enclosure|Slot|Firmware'
Enclosure Device ID: 8
Slot Number: 3
Firmware state: Offline
---------------------------------
Set disk state to online
MegaCli -PDonline -PhysDrv [8:3] -a0
MegaCli -PDList -aAll |egrep 'Enclosure|Slot|Firmware'
Enclosure Device ID: 8
Slot Number: 3
Firmware state: Offlin
-------------------------------
Mark Disk as missing
MegaCli -PDMarkMissing -PhysDrv [8:3] -a0
Prepare disk for removal
MegaCli -PdPrpRmv -PhysDrv [8:3] -a0
Replace Missing physical disk
MegaCli -PdReplaceMissing -PhysDrv [8:3] -ArrayN -rowN -aN
Rebuild the newly added disk
MegaCli -PDRbld -Start -PhysDrv [8:3] -aN
Check rebuild /start/stop/status rebuild on the server.
MegaCli -PDRbld -Start -PhysDrv [E:S] -aN
MegaCli -PDRbld -Stop -PhysDrv [E:S] -aN
MegaCli -PDRbld -ShowProg -PhysDrv [E:S] -aN
-----------------
http://www.thegeekstuff.com/2009/05/dell-tutorial-create-raid-using-perc-6i-integrated-bios-configuration-utility/
http://tools.rapidsoft.de/perc/perc-cheat-sheet.html
Download
http://www.lsi.com/downloads/Public/Obsolete/Obsolete%20Common%20Files/dr_linux_2.20.4.6_as40.zip
HP Array Controller card configuration from Linux
---------------------------------------------------
http://www.datadisk.co.uk/html_docs/redhat/hpacucli.htm
---------------------------
View Enclosure Details
MegaCli -EncInfo -aALL
View Array Controller on Server
MegaCli -AdpAllInfo -aAll
View Physical disk attached to the Array Controller
MegaCli -PDList -aAll
---------------------------
View Types of RAID Supported by Array Controller Card.
MegaCli -AdpAllInfo -aAll|grep RAID
Create RAID 1 / 5 from MegaRAID Cli
MegaCli -CfgLdAdd -r1 [8:2, 8:3] -a0
8 = Enclosure Device ID Number - Can find it out from PDList information
2 & 3 = Disk Slot Number - Can find it out from PDList information
a0 - Adapter Number
MegaCli -CfgLdAdd -r5 [8:2, 8:3, 8:4] -a0
Raid 5 Creation
--------------------------------
View Virtual Device Information.
MegaCli -LDInfo -Lall -aALL
---------------------------------
Set disk state to offline
MegaCli -PDOffline -PhysDrv [8:3] -a0
MegaCli -PDList -aAll |egrep 'Enclosure|Slot|Firmware'
Enclosure Device ID: 8
Slot Number: 3
Firmware state: Offline
---------------------------------
Set disk state to online
MegaCli -PDonline -PhysDrv [8:3] -a0
MegaCli -PDList -aAll |egrep 'Enclosure|Slot|Firmware'
Enclosure Device ID: 8
Slot Number: 3
Firmware state: Offlin
-------------------------------
Mark Disk as missing
MegaCli -PDMarkMissing -PhysDrv [8:3] -a0
Prepare disk for removal
MegaCli -PdPrpRmv -PhysDrv [8:3] -a0
Replace Missing physical disk
MegaCli -PdReplaceMissing -PhysDrv [8:3] -ArrayN -rowN -aN
Rebuild the newly added disk
MegaCli -PDRbld -Start -PhysDrv [8:3] -aN
Check rebuild /start/stop/status rebuild on the server.
MegaCli -PDRbld -Start -PhysDrv [E:S] -aN
MegaCli -PDRbld -Stop -PhysDrv [E:S] -aN
MegaCli -PDRbld -ShowProg -PhysDrv [E:S] -aN
Thursday, September 29, 2011
Friday, August 19, 2011
View smbuser on the samba-share
Samba - List the smbuser added to the samba share.
pdbedit -L = This will list all the smbuser added using smbpasswd -a command
pdbedit -Lv = This will extended view of the smbuser list.
pdbedit -L = This will list all the smbuser added using smbpasswd -a command
pdbedit -Lv = This will extended view of the smbuser list.
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
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
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
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 nodeWill 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
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 nodeWill 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.
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.,"
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
@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'
Tuesday, November 23, 2010
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
===============
$ 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
#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
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.
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 perllocal - Will display all additional modules that were installed.
perldoc perlmodlib - Will display all modules that are installed along with the standard perl packagesperldoc 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
/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
=========
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)
-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/
http://www.raymond.cc/blog/archives/2007/10/21/how-to-remotely-turn-on-computer-from-lan-and-wan/
Thursday, June 10, 2010
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.
===============================
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
ps -p
ps auU
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
=================================
[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:
================
Creation of SVN Directory and initialization of SVN
SVN directory location is /srv/svn/repos
Download a copy of WebSVN on the server
Copy the the extracted websvn to /var/www/html/webSVN
$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
---------------------------
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
svn import -m "Initial import" project1 file:///home/project1code
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->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
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.
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 ;
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 ;
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 ;
Wednesday, September 30, 2009
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.
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.
Wednesday, September 23, 2009
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.
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.
Tuesday, June 30, 2009
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
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
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
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
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
Wednesday, April 15, 2009
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 commstring1.3.6.1.4.1.2021.8.1.101.1
snmpwalk -v2c -c commstring1.3.6.1.4.1.2021.8.1.101.2
snmpwalk -v2c -c commstring1.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
----------------------------------------------
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
exec
exec
service snmdp restart
To test the first,second and so on custom script response using snmpwalk client
snmpwalk -v2c -c commstring
snmpwalk -v2c -c commstring
snmpwalk -v2c -c commstring
To collect all the snmp OID parameters.
snmpwalk -v2c -c commstring
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"
snmpwalk -v2c -c "xxxx"
snmpwalk -v2c -c "xxxx"
For monitoring processes make entries in /etc/snmp/snmpd.conf
proc java
proc postmaster
proc mysqld
snmpwalk -v2c -c "xxxx"
snmpwalk -v2c -c "xxxx"
snmpwalk -v2c -c "xxxx"
For Load Monitoring make following entires in /etc/snmp/snmp.conf file.
load 5 5 5
snmpwalk -v2c -c "xxxx"
snmpwalk -v2c -c "xxxx"
snmpwalk -v2c -c "xxxx"
For various CPU Utilisation Metrics use
snmpwalk -v2c -c "xxxx"
For various Memory Utilisation Metrics use
snmpwalk -v2c -c "xxxx"
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
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)
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.
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)
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
Subscribe to:
Posts (Atom)