Thursday, February 18, 2021

UNIX: How to print column nicely using printf

[user@hostfwnms1-oam tmp]# cat b.sh

printf "%-26s %-19s %-8s %-8s %-s %-s\n" HOSTNAME IP PING SNMPWALK 0-ok 1-fail

for i in `cat newhost2021 | awk '{print $1}'`

do

HOSTNAME=`cat newhost2021 | grep $i | awk '{print $2}'`

HOST=$i

ping -c 3 -W 2 $i > /dev/null

PINGSTATUS=$?

snmpwalk -v 2c -c public $i &> /dev/null

SNMPWLKSTATUS=$?

#echo "$HOSTNAME $HOST $PINGSTATUS $SNMPWLKSTATUS"| awk '{ print $1"\t\t" $2"\t\t" $3"\t\t" $4}'

echo "$HOSTNAME $HOST $PINGSTATUS $SNMPWLKSTATUS"| awk '{ printf "%-26s %-19s %-8s %-8s\n", $1, $2, $3, $4}'

done


[user@hostfwnms1-oam tmp]# sh b.sh

HOSTNAME                   IP                  PING     SNMPWALK 0-ok 1-fail

hostfwhostlab2-ilo          101.123.125.18       0        1       

hostfwsanctr05ctr1          101.123.125.22       0        1       

hostfwsanctr05ctr2          101.123.125.23       1        1       

hostcdrhost1-ilo            101.123.125.24       0        1       

hostcdrhost1-oam            101.123.126.28       0        1       

hostcdrapp1-oam             101.123.126.38       0        0       

hostfwmgmtsw                101.123.125.27       0        0       

[user@hostfwnms1-oam tmp]#

Tuesday, January 26, 2021

Unix Scripting : extract value at Nth line after string

 To extract the Nth line after a matching pattern you want:

awk 'c&&!--c;/pattern/{c=N}' file

sample use in script
#! /bin/sh
# check pid for OrderManagement 
PID=`ps -ef | grep Order | grep OrderManagement| awk '{print $2}'`
if [ -z "$PID" ]
then
# return 0 if PID does not exist
echo 0
else
# If PID exist ,test if jmap okay
if jmap -heap $PID > /dev/null 2>&1
then
echo pid is $PID
#run jmap -heap PID
/usr/bin/jmap -heap $PID | awk 'c&&!--c;/G1 Heap/{c=5}' | awk -F% '{print $1}' | cut -d. -f1 | sed 's/ //g'
else 
# return 0 if jmap command fails
echo 0
fi
fi


Tuesday, November 24, 2020

Unix/Linux Script how to print time 1 hour 2 hours ago

 $ cat testtime.sh

#!/bin/sh

###################### sample ###########################

#getdatenow=`date +%Y/%m/%d" "%H`

#getdate1hago=`date --date="1 hour ago" +%Y/%m/%d" "%H`

#getdate2hago=`date --date="2 hour ago" +%Y/%m/%d" "%H`

#getdate3hago=`date --date="3 hour ago" +%Y/%m/%d" "%H`

#########################################################


#########################################################

# for 0 hour, 1 hour, 2 hours .. ago

#########################################################

for i in 0 1 2 3 4 5

do

echo $i

datehour=`date --date="$i hour ago" +%Y/%m/%d" "%H`

echo $datehour

done


$ vi testtime.sh

$ sh testtime.sh

0

2020/11/24 11

1

2020/11/24 10

2

2020/11/24 09

3

2020/11/24 08

4

2020/11/24 07

5

2020/11/24 06

$ date

Tue Nov 24 11:56:11 WIB 2020

$

Unix/Linux Scripts to check daily logfile status

 # This is to check dump files are completed for last cronjob

DATE=`date --date="1 days ago" +"%d%m%Y"`

cd /var/DUMPDir

dump1date1=`ls -l --time-style='+%d%m%Y' dump_file1.csv| awk '{print $6}'`

dump1date2=`ls -l --time-style='+%d%m%Y' dump_file2.csv| awk '{print $6}'`

dump1date3=`ls -l --time-style='+%d%m%Y' dump_file3.csv| awk '{print $6}'`

dump1date4=`ls -l --time-style='+%d%m%Y' dump_file4.csv| awk '{print $6}'`

dump1date5=`ls -l --time-style='+%d%m%Y' dump_file5.csv| awk '{print $6}'`

dump1date6=`ls -l --time-style='+%d%m%Y' dump_file6.csv| awk '{print $6}'`

dump1date7=`ls -l --time-style='+%d%m%Y' dump_file7.csv| awk '{print $6}'`

dump1date8=`ls -l --time-style='+%d%m%Y' dump_file8.csv| awk '{print $6}'`

dump1date9=`ls -l --time-style='+%d%m%Y' dump_file9.csv| awk '{print $6}'`



echo "=============================dump files========================"

echo "Checking DUMP files for $DATE"

if [ "$dump1date1" == "$DATE" -a "$dump1date2" == "$DATE" -a "$dump1date3" == "$DATE" -a "$dump1date4" == "$DATE" -a "$dump1date5" == "$DATE" -a "$dump1date6" == "$DATE" -a "$dump1date7" == "$DATE" -a "$dump1date8" == "$DATE" -a "$dump1date9" == "$DATE" ]

then

echo $DATE > /home/user/DUMP_date.txt

echo "dump files date is current $DATE"

echo "Dump : 1 / 1"

else

LAST_SUC_RUN=`cat /home/user/DUMP_date.txt`

echo "dump files date is not current, last successful run: $LAST_SUC_RUN"

echo "Dump : 0 / 1"


fi


Monday, November 23, 2020

Unix/linux how to configure SSH proxy

Let say, server A B C

Server A cannot SSH to C directly

but B can SSH to C(192.168.66.29)

A can SSH to B(192.168.68.90)

Below are the setting

A .ssh]$ ls

config  id_rsa  id_rsa.pub  known_hosts

A .ssh]$ cat id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTGmoWURAB7OGw7T+r8stLraf5j8FdHNgE4SdVM0L8Zop6AIKcFhMa2suOeKzx+B4VXH54DT5vmV2X9iUrWQRqTODz5XaXX3Ck4VPnKawyOra8aLmqEfTS2Q4auKkb0rzXoEjNCu7YDttYjkiUpn/dZ2yw5TfXaKJrnIBqrFuxBh6sLHaYcRI+jzPPik1HIBnSv2rLVBtI6yF7mXom7stRt7dVe1CWvMCLLCalJMtgy+bx4wLbr61moAmSD0j/GTQWuek7/2fqpMEIMl4Y57B4T6sTSSsCJRs5SFxVQu/l908UjWTOhpjToJzltkmJNA2IovyoIBAwSFLabwb9+6PH useid@A

A .ssh]$


1- Update .ssh/authorized_keys on user1@192.168.68.80 with id_rsa.pub per above on hostA n B

2- Update .ssh/authorized_keys on user2@192.168.66.29 

3- Update per below on A

A ~]$ ls -l /home/openet/.ssh/config

-rwx------ 1 user2 user2 80 Sep 26 13:46 /home/user2/.ssh/config

A ]$ cat /home/openet/.ssh/config

Host 192.168.66.29

     ProxyCommand ssh -l user1 192.168.68.90 exec nc %h %p

A }$




Unix/Linux mailx send email via relay

 

192.168.1.1 is the ip of mail relay (example)

$ mailx -v -s "testing" -S smtp=smtp://192.168.1.1 -S from="test@yourdomain.com" 

OPENNMS How to test polling manually

 OPENNMS how to test snmp port ok


# ssh -p 8101 admin@localhost

Password authentication

Password: 


   ____                   _   _ __  __  _____  

  / __ \                 | \ | |  \/  |/ ____| 

 | |  | |_ __   ___ _ __ |  \| | \  / | (___   

 | |  | | '_ \ / _ \ '_ \| . ` | |\/| |\___ \  

 | |__| | |_) |  __/ | | | |\  | |  | |____) | 

  \____/| .__/ \___|_| |_|_| \_|_|  |_|_____/  

        | |                                    

        |_|                                    


  OpenNMS (21.0.3) on Apache Karaf (4.1.2)


Hit '<tab>' for a list of available commands

and '[cmd] --help' for help on a specific command.

Hit '<ctrl-d>' to exit this console.


admin@opennms()> poll org.opennms.netmgt.poller.monitors.SnmpMonitor 192.168.70.10

...

Service is Down on 192.168.70.10 using org.opennms.netmgt.poller.monitors.SnmpMonitor

Reason: SNMP poll failed, addr=192.168.70.10 oid=.1.3.6.1.2.1.1.2.0

admin@opennms()> poll org.opennms.netmgt.poller.monitors.SnmpMonitor 192.168.70.10                                                                                                          


Service is Up on 192.168.70.10 using org.opennms.netmgt.poller.monitors.SnmpMonitor:

response-time: 0.9282

admin@opennms()> poll org.opennms.netmgt.poller.monitors.SnmpMonitor 192.168.70.14


Service is Up on 192.168.70.14 using org.opennms.netmgt.poller.monitors.SnmpMonitor:

response-time: 1.1582

admin@opennms()> poll org.opennms.netmgt.poller.monitors.SnmpMonitor 192.168.70.15


Service is Up on 192.168.70.15 using org.opennms.netmgt.poller.monitors.SnmpMonitor:

response-time: 1.3335

admin@opennms()> poll org.opennms.netmgt.poller.monitors.SnmpMonitor 192.168.70.15                                                                                                          


Service is Up on 192.168.70.15 using org.opennms.netmgt.poller.monitors.SnmpMonitor:

response-time: 1.0122

admin@opennms()> Connection to localhost closed by remote host.                                                                                                                             

Connection to localhost closed.

# Connection closing...Socket close.

OPENNMS psql how to get host and catagories

 

#psql opennms -h localhost -d opennms


Paste sql command below

 SELECT

    n.nodesysname,

    COALESCE(s_cat.categoryname, 'no category') AS categoryname

  FROM

    node n

  LEFT JOIN

    category_node cn

  ON

    n.nodeid = cn.nodeid

  LEFT JOIN

    categories s_cat

  ON

    cn.categoryid = s_cat.categoryid;






opennms=>   SELECT

opennms->     n.nodesysname,

opennms->     COALESCE(s_cat.categoryname, 'no category') AS categoryname

opennms->   FROM

opennms->     node n

opennms->   LEFT JOIN

opennms->     category_node cn

opennms->   ON

opennms->     n.nodeid = cn.nodeid

opennms->   LEFT JOIN

opennms->     categories s_cat

opennms->   ON

opennms->     cn.categoryid = s_cat.categoryid order by nodesysname;

OPENNMS : How to get OID for custom scripts

add your script on target nodes.

edit snmpd.conf accordingly

restart snmpd

Run below command

# for i in `snmpwalk -v 2c -c TselSA 127.0.0.1 NET-SNMP-EXTEND-MIB::nsExtendObjects| grep "NET-SNMP-EXTEND-MIB::nsExtendOutLine." | cut -d "=" -f1`; do echo $i; echo "snmptranslate -On '$i'" >> a.sh ; done

NET-SNMP-EXTEND-MIB::nsExtendOutLine."OM_LATEST".1

NET-SNMP-EXTEND-MIB::nsExtendOutLine."OM_LATEST".2

NET-SNMP-EXTEND-MIB::nsExtendOutLine."OM_LATEST".3

NET-SNMP-EXTEND-MIB::nsExtendOutLine."OM_LATEST".4

NET-SNMP-EXTEND-MIB::nsExtendOutLine."billingApi".1

NET-SNMP-EXTEND-MIB::nsExtendOutLine."billingApi".2

NET-SNMP-EXTEND-MIB::nsExtendOutLine."billingApi".3

NET-SNMP-EXTEND-MIB::nsExtendOutLine."Erecharge_Session_JWT".1

# cat a.sh

snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."OM_LATEST".1'

snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."OM_LATEST".2'

snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."OM_LATEST".3'

snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."OM_LATEST".4'

snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."billingApi".1'

snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."billingApi".2'

snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."billingApi".3'

snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."Erecharge_Session_JWT".1'

# sh a.sh

.1.3.6.1.4.1.8072.1.3.2.4.1.2.9.79.77.95.76.65.84.69.83.84.1

.1.3.6.1.4.1.8072.1.3.2.4.1.2.9.79.77.95.76.65.84.69.83.84.2

.1.3.6.1.4.1.8072.1.3.2.4.1.2.9.79.77.95.76.65.84.69.83.84.3

.1.3.6.1.4.1.8072.1.3.2.4.1.2.9.79.77.95.76.65.84.69.83.84.4

.1.3.6.1.4.1.8072.1.3.2.4.1.2.10.98.105.108.108.105.110.103.65.112.105.1

.1.3.6.1.4.1.8072.1.3.2.4.1.2.10.98.105.108.108.105.110.103.65.112.105.2

.1.3.6.1.4.1.8072.1.3.2.4.1.2.10.98.105.108.108.105.110.103.65.112.105.3

.1.3.6.1.4.1.8072.1.3.2.4.1.2.21.69.114.101.99.104.97.114.103.101.95.83.101.115.115.105.111.110.95.74.87.84.1

Add above IOD to polling setting to monitor

Unix/linux: parameter now, 1 hour ago, 2 hours ago


getdatenow=`date +%Y/%m/%d" "%H`

getdate1hago=`date --date="1 hour ago" +%Y/%m/%d" "%H`

getdate2hago=`date --date="2 hour ago" +%Y/%m/%d" "%H`

getdate3hago=`date --date="3 hour ago" +%Y/%m/%d" "%H` 

Unix/linux: how to arithmetic in /bin/sh and grep log based on last hours event happened

 

# calculator

y0=0

y1=0

y2=0

y3=0

t0=0

t1=0

t2=0

t3=0


getdatenow=`date +%Y/%m/%d" "%H`

getdate1hago=`date --date="1 hour ago" +%Y/%m/%d" "%H`

getdate2hago=`date --date="2 hour ago" +%Y/%m/%d" "%H`

getdate3hago=`date --date="3 hour ago" +%Y/%m/%d" "%H`


# processing today loga

y0=`grep "unable to send message to peer," /logs/UL_$yesterday\_*| grep "$getdatenow" | wc -l`

y1=`grep "unable to send message to peer," /logs/UL_$yesterday\_*| grep "$getdate1hago" | wc -l`

y2=`grep "unable to send message to peer," /logs/UL_$yesterday\_*| grep "$getdate2hago" | wc -l`

y3=`grep "unable to send message to peer," /logs/UL_$yesterday\_*| grep "$getdate3hago" | wc -l`


# processing today loga


t0=`grep "unable to send message to peer," /logs/UL_$getdate\_*| grep "$getdatenow" | wc -l`

t1=`grep "unable to send message to peer," /logs/UL_$getdate\_*| grep "$getdate1hago" | wc -l`

t2=`grep "unable to send message to peer," /logs/UL_$getdate\_*| grep "$getdate2hago" | wc -l`

t3=`grep "unable to send message to peer," /logs/UL_$getdate\_*| grep "$getdate3hago" | wc -l`

NUMBER_ERROR_DETECTED=`expr "$y0 + $y1 + $y2 + $y3 + $t0 + $t1 + $t2 + $t3" | bc`



echo $NUMBER_ERROR_DETECTED

Friday, March 2, 2018

UNIX: check CPU usage and disk usage

Script to check cpu usage

grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'

#!/bin/bash

limit=2
email_destination="whatever@gmail.com"
email_body="WARNING the CPU usage on server `hostname` exceeded the limit you set ($limit)%"
email_subject="WARNING cpu usage"

usage=`grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage}' | bc`

if echo $usage $limit | awk '{exit $1>$2?0:1}'
then
  echo -e $email_body | mail -s "$email_subject" $email_destination
  #echo 'alarm'
fi
_____________________________________________________

Disk space not updating in linux df -h after deleted files

ls -ld /proc/*/fd/* 2>&1 | fgrep '(deleted)'


restart the process that hold it

UNIX: sum and print total content of file

$ cat tpsCCRT.txt | awk '{sum+=$1} END {print "Count: ",NR;print "Avg :",sum/NR}'
Count:  1441
Avg : 15.6232
$

LinuxL Find file with certain permission


[root]# ls -l `find . -type f ! -perm 0755`
-rw-rw-r-- 1 root root    32550 Jan 18 14:20 ./centric_crm_tools-5.0.jar
-rw-rw-r-- 1 root root     8917 Jan 18 14:20 ./centric-troubleticketer-21.0.3.jar
-rw-rw-r-- 1 root root    10725 Jan 18 13:50 ./jdhcp-1.2.0.jar
-rw-rw-r-- 1 root root   228516 Jan 18 13:41 ./jradius-core-1.1.5.jar
-rw-rw-r-- 1 root root  4788404 Jan 18 13:41 ./jradius-dictionary-1.1.5.jar
-rw-r--r-- 1 root root    18289 Jan 18 13:51 ./opennms-alarm-northbounder-jms-21.0.3.jar
-rw-rw-r-- 1 root root    50911 Jan 18 13:51 ./opennms-dns-provisioning-adapter-21.0.3.jar
-rw-rw-r-- 1 root root    45429 Jan 18 13:49 ./opennms-integration-otrs-21.0.3.jar
-rw-rw-r-- 1 root root    60857 Jan 18 13:49 ./opennms-integration-otrs-31-21.0.3.jar
-rw-rw-r-- 1 root root     6037 Jan 18 13:49 ./opennms-integration-otrs-common-21.0.3.jar
-rw-rw-r-- 1 root root     7792 Jan 18 13:49 ./opennms-integration-rt-21.0.3.jar
-rw-r--r-- 1 root root 35841272 Jan 18 14:02 ./opennms_jmx_config_generator.jar
-rw-rw-r-- 1 root root   368488 Jan 18 13:51 ./opennms-rancid-provisioning-adapter-21.0.3.jar
-rw-rw-r-- 1 root root    49068 Jan 18 13:51 ./opennms-reverse-dns-provisioning-adapter-21.0.3.jar
-rw-rw-r-- 1 root root    54680 Jan 18 13:51 ./opennms-snmp-asset-provisioning-adapter-21.0.3.jar
-rw-rw-r-- 1 root root    55477 Jan 18 13:51 ./opennms-snmp-hardware-inventory-provisioning-adapter-21.0.3.jar
-rw-rw-r-- 1 root root    11951 Jan 18 13:51 ./opennms-vtdxml-collector-handler-21.0.3.jar
-rw-rw-r-- 1 root root  1871026 Jan 18 13:41 ./org.opennms.dependencies.jradius-extended-21.0.3.jar
-rw-rw-r-- 1 root root    22018 Jan 18 13:47 ./org.opennms.features.juniper-tca-collector-21.0.3.jar
-rw-r--r-- 1 root root    23005 Jan 18 13:50 ./org.opennms.features.ncs.ncs-drools-21.0.3.jar
-rw-r--r-- 1 root root    19288 Jan 18 13:50 ./org.opennms.features.ncs.ncs-northbounder-21.0.3.jar
-rw-r--r-- 1 root root    25031 Jan 18 13:45 ./org.opennms.features.ncs.ncs-persistence-21.0.3.jar
-rw-rw-r-- 1 root root     9602 Jan 18 13:51 ./org.opennms.protocols.cifs-21.0.3.jar
-rw-rw-r-- 1 root root    41591 Jan 18 13:50 ./org.opennms.protocols.dhcp-21.0.3.jar
-rw-rw-r-- 1 root root    63485 Jan 18 13:50 ./org.opennms.protocols.nsclient-21.0.3.jar
-rw-rw-r-- 1 root root    25416 Jan 18 13:50 ./org.opennms.protocols.radius-21.0.3.jar
-rw-rw-r-- 1 root root    47068 Jan 18 13:50 ./org.opennms.protocols.xmp-21.0.3.jar
-rw-rw-r-- 1 root root   637560 Jan 18 13:51 ./vtd-xml-2.11.jar
-rw-rw-r-- 1 root root    88198 Jan 18 13:50 ./xmp-1.40.jar
[root]#

Friday, May 26, 2017

Unix: Find list of files in gz format contain strings

$ find . -name "*.gz" -exec zgrep -la bbarney03@xxxx.com \{\} \;
./aaa_1/231_20160606193002_232895_330_20160606_231655_1_0000_01.act.gz
./aaa_1/231_20160606173001_604598_330_20160606_211628_1_0000_01.act.gz
./aaa_1/232_20160606191508_769207_935_20160606_230502_1_0000.act.gz
./aaa_1/232_20160606191600_522897_329_20160606_230518_1_0000.act.gz
./aaa_1/232_20160606160002_239869_935_20160606_194946_1_0000.act.gz
./aaa_1/232_20160606094601_736357_329_20160606_133804_1_0000.act.gz
./aaa_1/232_20160606103002_77028_935_20160606_141917_1_0000.act.gz
./aaa_1/231_20160606113107_109722_840_20160606_152107_1_0000.act.gz
./aaa_1/231_20160606120002_183644_330_20160606_154014_1_0000_03.act.gz
./aaa_1/231_20160606094501_813187_330_20160606_133446_1_0000_00.act.gz
./aaa_1/232_20160606114501_577769_935_20160606_153424_1_0000.act.gz
./aaa_1/232_20160606104600_643312_329_20160606_143819_1_0000.act.gz
./aaa_1/232_20160606103107_699907_837_20160606_141919_1_0000.act.gz
./aaa_1/231_20160606120019_863535_330_20160606_154515_1_0000_01.act.gz
./aaa_1/232_20160606094701_251538_329_20160606_133804_1_0000_03.act.gz
./aaa_1/232_20160606153002_294217_935_20160606_191943_1_0000.act.gz
./aaa_1/232_20160606160107_988588_837_20160606_194949_1_0000.act.gz
./aaa_1/232_20160606160102_442949_329_20160606_195433_1_0000.act.gz
./aaa_1/232_20160606114603_483834_837_20160606_153426_1_0000.act.gz
./aaa_1/231_20160606153002_218144_330_20160606_191602_1_0000_02.act.gz

$ zgrep -i bbarney03@xxxx.com 231_20160609122102_492219_840_20160609_160748_1_0000.act.gz

$ zgrep -la bbarney03@sxxxxcom 231_20160609122102_492219_840_20160609_160748_1_0000.act.gz

find . -name "*.gz" -exec zgrep -la 8434763502 \{\} \;
find . -name "*.gz" -exec zgrep -la 50495939382 \{\} \;

Wednesday, May 28, 2014

Linux: find hba information

-bash-3.2$ nsu
Password:
[root@redhat ~]# cd /opt/hp
[root@redhat hp]# ls
hpdiags        hp-ilo       hpsmh             hpssa
hp_fibreutils  hpmouse      hp-smh-templates  hpssacli
hp-health      hp-OpenIPMI  hp-snmp-agents
[root@redhat hp]# cd hp_fibreutils
[root@redhat hp_fibreutils]# ls
adapter_info  hp_rescan  lssd  lssg  scsi_info
[root@redhat hp_fibreutils]# ./hp_rescan -h
NAME

hp_rescan

DESCRIPTION

Sends the rescan signal to all or selected Fibre Channel HBAs/CNAs.

OPTIONS

-a, --all      - Rescan all Fibre Channel HBAs
-h, --help     - Prints this help message
-i, --instance - Rescan a particular instance
-l, --list     - List all supported Fibre Channel HBAs
[root@redhat hp_fibreutils]# ./hp_rescan -l
QLogic adapters:

/sys/class/scsi_host/1
/sys/class/scsi_host/2

Emulex adapters:


Brocade adapters:

[root@redhat hp_fibreutils]# cd /sys/class/scsi_host
[root@redhat scsi_host]# ls
host0  host1  host2
[root@redhat scsi_host]# ls -la
total 0
drwxr-xr-x  5 root root 0 May 23 14:25 .
drwxr-xr-x 43 root root 0 May 23 14:26 ..
drwxr-xr-x  2 root root 0 May 26 11:13 host0
drwxr-xr-x  2 root root 0 May 26 11:13 host1
drwxr-xr-x  2 root root 0 May 26 11:13 host2
[root@redhat scsi_host]# cd host1
[root@redhat host1]# ls
84xx_fw_version   model_desc            state
beacon            model_name            subsystem
cmd_per_lun       mpi_version           total_isp_aborts
device            npiv_vports_inuse     uevent
driver_version    optrom_bios_version   unchecked_isa_dma
fabric_param      optrom_efi_version    unique_id
flash_block_size  optrom_fcode_version  vlan_id
fw_dump_size      optrom_fw_version     vn_port_mac_address
fw_state          pci_info              vport_create
fw_version        phy_version           vport_delete
host_busy         proc_name             zio
isp_id            scan                  zio_timer
isp_name          serial_num
max_npiv_vports   sg_tablesize
[root@redhat host1]# more driver_version
8.04.00.12.5.6-k2
[root@redhat host1]# more model_name
QMH2462
[root@redhat host1]#

Thursday, March 20, 2014

Solaris: nvalias

# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c1t0d0
          /pci@0/pci@0/pci@2/scsi@0/sd@0,0
       1. c1t1d0
          /pci@0/pci@0/pci@2/scsi@0/sd@1,0
       2. c4t60060E80056F110000006F11000060D4d0
          /scsi_vhci/ssd@g60060e80056f110000006f11000060d4
Specify disk (enter its number):


{0} ok printenv boot-device
boot-device =           /pci@0/pci@0/pci@2/scsi@0/disk@0,0:a disk net
{0} ok nvalias root-mirr /pci@0/pci@0/pci@2/scsi@0/disk@1,0:a
{0} ok devalias
root-mirr                /pci@0/pci@0/pci@2/scsi@0/disk@1,0:a
ttya                     /ebus@c0/serial@0,ca0000
nvram                    /virtual-devices/nvram@3
net3                     /pci@0/pci@0/pci@1/pci@0/pci@3/network@0,1
net2                     /pci@0/pci@0/pci@1/pci@0/pci@3/network@0
net1                     /pci@0/pci@0/pci@1/pci@0/pci@2/network@0,1
net0                     /pci@0/pci@0/pci@1/pci@0/pci@2/network@0
net                      /pci@0/pci@0/pci@1/pci@0/pci@2/network@0
cdrom                    /pci@0/pci@0/pci@1/pci@0/pci@1/pci@0/usb@0,2/hub@4/device@4/storage@0/disk@0:f
disk3                    /pci@0/pci@0/pci@2/scsi@0/disk@3
disk2                    /pci@0/pci@0/pci@2/scsi@0/disk@2
disk1                    /pci@0/pci@0/pci@2/scsi@0/disk@1
disk0                    /pci@0/pci@0/pci@2/scsi@0/disk@0
disk                     /pci@0/pci@0/pci@2/scsi@0/disk@0
scsi                     /pci@0/pci@0/pci@2/scsi@0
virtual-console          /virtual-devices/console@1
name                     aliases
{0} ok boot

HPUX: How to check hpux ilo firmware version

<>hpiLO-> show
status=0
status_tag=COMMAND COMPLETED


/
  Targets
    system1
    map1
  Properties
  Verbs
    cd version exit show


<>hpiLO-> show /map1

status=0
status_tag=COMMAND COMPLETED


/map1
  Targets
    firmware1
    accounts1
    log1
    enetport1
    dhcpendpt1
    dnsendpt1
    gateway1
    dnsserver1
    dnsserver2
    dnsserver3
    dhcpserver1
    settings1
    config1
    snmp1
    oemhp_dircfg1
    oemhp_vm1
    vlan1
    oemhp_ssocfg1
  Properties
    name=iLO 3 Advanced
    license=3368NY7M2BQGKTNMLDZ8KZLLH
  Verbs
    cd version exit show reset set oemhp_ping



hpiLO-> show firmware1
status=0
status_tag=COMMAND COMPLETED


/map1/firmware1
  Targets
  Properties
    version=1.10
    date=Jul 26 2010
  Verbs
    cd version exit show load set



hpiLO->

to upgrade


How to upgrade the firmware using SSH PDF Print E-mail
Written by Carlo Cacciafesta  
Thursday, 07 January 2010 13:35
How to upgrade the firmware using SSH

The following commands can be used to upgrade the firmware on an HP iLO or iLO2 interface. This procedure is particularly useful when the iLO stops working properly and it's not accessible from the server or via HTTP(S).

Use the following procedure:

    * Use SSH to access the iLO device
    * Log in to the iLO using administrative credentials
    * Type the following command and press enter: "load -source http://ip_address/path/imagename.bin /map1/firmware"
          o  Example: "load -source http://192.168.0.1/ilo2_180.bin /map1/firmware"
    * The interface will download the new image and will reset itself
    * To check the firmware version, log in again using SSH and enter the following command: "show /map1/firmware version"

Redhat: Find network device

[root@ devices]# du -a . | grep net
0       ./vmbus_0_0/vmbus_0_4/net:seth0
0       ./pci0000:00/0000:00:0a.0/net:eth0
[root@ devices]# pwd
/sys/devices
[root@ devices]#

Solaris: Restricted ftp access

groupadd partsftp
useradd -c "F1 performance project" -d /root/home/partsftp -g partsftp -m -s /usr/bin/false partsftp
svcadm -v enable ftp



Change user's home directory to /u01/network:
Code:
usermod -d /u01/network ftp_user

Then add:
Code:
restricted-uid ftp_user
to /etc/ftpd/ftpaccess file.


server1# vi /etc/shells
"/etc/shells" [New file]
/usr/bin/false



    deny-uid uid-range [uid-range...]
     deny-gid gid-range [gid-range...]
     allow-uid uid-range  [uid-range...]
     allow-gid gid-range [gid-range...]



/etc/ftpd/ftpaccess example
--------------
.
.
.
. omitted

# limit-time    anonymous       30
# limit         anonusers       10      Wk0730-1800       /etc/ftpd/toomany.msg
# limit         anonusers       50      SaSu|Any1800-0730 /etc/ftpd/toomany.msg
restricted-uid partsftp
allow-uid partsftp
deny-uid *
defumask 022
server1#

UNIX: How to print column nicely using printf

[user@hostfwnms1-oam tmp]# cat b.sh printf "%-26s %-19s %-8s %-8s %-s %-s\n" HOSTNAME IP PING SNMPWALK 0-ok 1-fail for i in `cat n...