Sunday, April 29, 2007

Replace .htm with .html in 100's of files inside a dir

I needed to replace {.htm} files with {.html} extensions in
100's of files in a directory :

Heres what I did :

[root@unixguy scripts]# ls
file1.htm file2.htm file3.htm

[root@unixguy scripts]# for list in `ls -1t *.htm*`
> do
> prefix=`echo $list | awk -F"\." '{print $1}'`
> mv $list ${prefix}.html
> done

[root@unixguy scripts]# ls
file1.html file2.html file3.html

One more way of doing this :

[root@unixguy scripts]# ls
file1.html file2.html file3.html

[root@unixguy scripts]# ls *.html | awk -F '.'
'{print "mv "$1".html "$1".htm"}'| csh

[root@unixguy scripts]# ls
file1.htm file2.htm file3.htm

Search and replace Shell Script

Had to parse 100's of files in a loop and replace a word
called Bombay with a new word Mumbai

cat file1.dat
city name is Bombay and country is INDIA.

cat file1.dat
city name is Mumbai and country is INDIA.

for file in /tmp/a /tmp/c /tmp/b ; do
sed 's/Bombay/MUMBAI/g' ${file} > ${file}.new

Thursday, April 26, 2007

SUN OS Admin Commands

SUN OS Commands

bash-2.03$ page file-name.txt
Browse or page through a text file , just like more command.

Shows host status of remote machines

bash-2.03$ rup
eqdtadm1.nam.ns up 3 days, 20:57, load average: 0.00, 0.00, 0.01
eqtmsny2-phys.n up 3 days, 6:29, load average: 0.28, 0.26, 0.26
nemap1c1.nam.ns up 3 days, 3:55, load average: 0.00, 0.01, 0.02
detnr6.nam.nsro up 85 days, 14:42, load average: 0.05, 0.05, 0.05 up 3 days, 7:06, load average: 0.06, 0.05, 0.07
ffgdb1c-2.nam.n up 96 days, 18:52, load average: 0.16, 0.18, 0.18

bash-2.03$ psrinfo -v
For Processor information on a Sun System.

bash-2.03$ showrev -p
The showrev command displays the revision of a particular patch. This helps when you install a version of the patch to check if it is the latest and/or check if it is obsolete.

prtstat is top in SUN os

bash-2.03$ truss -d who
truss -d and truss -D (Solaris >= 8): These truss options show the time associated with each system call being shown by truss and is excellent for finding performance problems in custom or commercial code. For example:

plimit (Solaris >= 8):
This command displays and sets the per-process limits on a running process. This is handy if a long-running process is running up against a limit (for example, number of open files). Rather than using limit and restarting the command, plimit can modify the running process.

coreadm (Solaris >= 8): In the "old" days (before coreadm), core dumps were placed in the process's working directory. Core files would also overwrite each other. All this and more has been addressed by coreadm, a tool to manage core file creation. With it, you can specify whether to save cores, where cores should be stored, how many versions should be retained, and more. Settings can be retained between reboots by coreadm modifying /etc/coreadm.conf.

pgrep (Solaris >= 8): pgrep searches through /proc for processes matching the given criteria, and returns their process-ids. A great option is "-n", which returns the newest process that matches.

preap (Solaris >= 9): Reaps zombie processes. Any processes stuck in the "z" state (as shown by ps), can be removed from the system with this command.

pargs (Solaris >= 9): Shows the arguments and environment variables of a process

Night Has Ended For Another Day, Morning Has Come In A Special Way, May You Smile Like Sunny Rays,

And Leave Your Worries For Some Other Day ! Have A Nice Day....

Sunday, April 22, 2007

Veritas Cluster - Commands

VRTSvcs        VERITAS Cluster Server
VRTSvcswz VERITAS Cluster Server Wizard
VRTScsga VERITAS Cluster Server Graphical Administrator
VRTSgab VERITAS Group Membership and Atomic Broadcast
VRTSllt VERITAS Low Latency Transport
VRTSvcsor VERITAS Cluster Server Oracle Enterprise Extension
VRTSvcssy VERITAS Cluster Server Sybase Enterprise Extension
VRTSperl VERITAS Perl for VRTSvcs

Cluster Name of your HA environment
Nodes Physical systems that make up the cluster
Service group Abstract container of related resources
Resource Cluster components (i.e. NICs, IPs, disk groups,
volumes, mounts, processes, etc...)
Attributes Parameter values that define the resources
Dependencies Links between resources or service groups

Cluster Mgr Cluster Monitor : Log in, add clusters, change preferences
Cluster Mgr Cluster Explorer: Monitor systems, service grps,
resources, attributes & dependencies
Cluster Mgr Log Desk : Monitor log messages received
from engine, view GUI commands
Cluster Mgr Command Center : Build VCS commands and send to engine
LLT Low Latency transport provides fast kernel-kernel
comm. & monitors network connx.
GAB Grp membership & Atomic Broadcast maintains a synch.
state & monitors disk comm.

Config files VCS etc directory
Config files VCS configuration directories
Binary files VCS opt directory
Binary files VCS binary path
Log files VCS log path
Config files VCS configuration file
LLT tab file LLT configuration file
LLT hosts file LLT host name database
GAB file Grp membership & Atomic Broadcast file

quick-start VCS Quick-start wizard
# $VCS_HOME/wizards/config/quick_start
quick-NFS VCS Quick-NFS wizard
# $VCS_HOME/wizards/services/quick_nfs
llt Verify LLT
# /sbin/llstat -n
llt Get interface MAC Address
# /opt/VRTSllt/getmac device_name
llt Check network connectivity
# /opt/VRTSllt/dlpiping -s|-c -v device_name
gab Verify GAB
# /sbin/gabconfig -a ; /sbin/gabconfig -l
hasys List systems in cluster
# /opt/VRTSvcs/bin/hasys -list
hasys Detailed info on each cluster node
# /opt/VRTSvcs/bin/hasys -display (sysname)
hasys Increase system count in gabtab startup
# /opt/VRTSvcs/bin/hasys -add (sysname)
hasys Delete a system
# /opt/VRTSvcs/bin/hasys -delete (sysname)
hastart Start VCS cluster
# /opt/VRTSvcs/bin/hastart
hastart Force start a stale VCS cluster
# /opt/VRTSvcs/bin/hastart -force -stale
hastop Stop VCS on all systems
# /opt/VRTSvcs/bin/hastop -all
hastop Stop VCS had, keep srvc-groups running
# /opt/VRTSvcs/bin/hastop -local -force
hastop Stop VCS, migrate srvc-groups to sysname
# /opt/VRTSvcs/bin/hastop -sys (sysname) -evacuate
hastatus Provide continual status of service grps
# /opt/VRTSvcs/bin/hastatus
hastatus Verify status of service groups
# /opt/VRTSvcs/bin/hastatus -summary
hacf Check for syntax errors in
# /opt/VRTSvcs/bin/hacf -verify /etc/VRTSvcs/conf/config/
hacf Generate dependency tree in
# /opt/VRTSvcs/bin/hacf -generate /etc/VRTSvcs/conf/config/

hares List all resources
# /opt/VRTSvcs/bin/hares -list
hares List a resource's dependencies
# /opt/VRTSvcs/bin/hares -dep (resource_name)
hares Get detailed info on a resource
# /opt/VRTSvcs/bin/hares -display (resource)
hares Add a resource
# /opt/VRTSvcs/bin/hares -add (resource_name (resource_type (service_group)
hares Modify attributes of the new resource
# /opt/VRTSvcs/bin/hares -modify (resource_name (attribute_name (value)
hares Delete a resource
# /opt/VRTSvcs/bin/hares -delete (resource_name)
hares Online a resource
# /opt/VRTSvcs/bin/hares -online (resource_name) -sys (system_name)
hares Offline a resource
# /opt/VRTSvcs/bin/hares -offline (resource_name) -sys (system_name)
hares Monitor resource on a system
# /opt/VRTSvcs/bin/hares -probe (resource_name) -sys (system_name)
hares Clear a faulted resource
# /opt/VRTSvcs/bin/hares -clear (resource_name) [-sys system_name]
hares Make a resource's attribute value local
# /opt/VRTSvcs/bin/hares -local (resource_name) (attribute_name) value)
hares Make a resource's attribute value global
# /opt/VRTSvcs/bin/hares -global (resource_name) (attribute_name) value)
hares Specify a dependency between 2 resources
# /opt/VRTSvcs/bin/hares -link (parent_res) (child_res)
hares Remove dependency between 2 resources
# /opt/VRTSvcs/bin/hares -unlink (parent_res) (child_res)
hares Modify a Share res. by adding options
# /opt/VRTSvcs/bin/hares Share_cicgt-as4-p_apps Options "%-o rw,root=dcsa-cln1"

hagrp List all service groups
# /opt/VRTSvcs/bin/hagrp -list
hagrp List a service group's resources
# /opt/VRTSvcs/bin/hagrp -resources [service_group]
hagrp List a service group's dependencies
# /opt/VRTSvcs/bin/hagrp -dep [service_group]
hagrp Detailed info about a service group
# /opt/VRTSvcs/bin/hagrp -display [service_group]
hagrp Start service group, bring res. online
# /opt/VRTSvcs/bin/hagrp -online (service_group) -sys (system_name)
hagrp Stop service group, bring res. offline
# /opt/VRTSvcs/bin/hagrp -offline (service_group) -sys (system_name)

hagrp Switch service group between nodes
# /opt/VRTSvcs/bin/hagrp -switch (service_group) -to (system_name)
hagrp Freeze svcgroup, (disable onl. & offl.)
# /opt/VRTSvcs/bin/hagrp -freeze (service_group) [-persistent]
hagrp Thaw a svcgroup, (enable onl. & offl.)
# /opt/VRTSvcs/bin/hagrp -unfreeze (service_group) [-persistent]
hagrp Enable a service group
# /opt/VRTSvcs/bin/hagrp -enable (service_group) [-sys system_name]
hagrp Disable a service group
# /opt/VRTSvcs/bin/hagrp -disable (service_group) [-sys system_name]
hagrp Enable all resources in a service group
# /opt/VRTSvcs/bin/hagrp -enableresources (service_group)
hagrp Disable all resources in a service group
# /opt/VRTSvcs/bin/hagrp -disableresources (service_group)
hagrp Specify dependenciy between 2 svc groups
# /opt/VRTSvcs/bin/hagrp -link (parent_group) (child_group) (relationship)
hagrp Remove dependenciy between 2 svc groups
# /opt/VRTSvcs/bin/hagrp -unlink (parent_group) (child_group)
hagrp Auto-Enable a servicegroup marked
# /opt/VRTSvcs/bin/hagrp -autoenable (service_group) [-sys system_name]
disabled due to prob with system_name.

hatype List resource types
# /opt/VRTSvcs/bin/hatype -list
hatype Detailed info on a resource type
# /opt/VRTSvcs/bin/hatype -display (resource_type)
hatype List all resources of a part. type
# /opt/VRTSvcs/bin/hatype -resources (resource_type)
hatype Add a resource type
# /opt/VRTSvcs/bin/hatype -add (resource_type)
hatype Set static attribute values
# /opt/VRTSvcs/bin/hatype -modify ...
hatype Delete a resource type
# /opt/VRTSvcs/bin/hatype -delete (resource_type)
haattr Add Attribute to a Type definition
# /opt/VRTSvcs/bin/haattr -add (resource_type) (attribute_name) /
(attribute_type -integer, -string, -vector)
haattr Delete a Entry in a Type definition
# /opt/VRTSvcs/bin/haattr -delete (resource_type) (attribute_name)
haconf Set VCS configuration file to r/w mode
# /opt/VRTSvcs/bin/haconf -makerw
haconf Set VCS configuration file to read mode
# /opt/VRTSvcs/bin/haconf -dump -makero
hauser Add a user with r/w access to VCS
# /opt/VRTSvcs/bin/hauser -add (user_name)
hauser Add a user with read access only to VCS
# /opt/VRTSvcs/bin/hauser -add VCSGuest
hauser Update a user
# /opt/VRTSvcs/bin/hauser -update (user_name)
hauser Delete a user
# /opt/VRTSvcs/bin/hauser -delete (user_name)
hauser Display all users
# /opt/VRTSvcs/bin/hauser -display
haagent Start agents manually
# haagent -start (agent_name) -sys (system_name)
haagent Stop agents manually
# haagent -stop (agent_name) -sys (system_name)
hagui Start Cluster Manager
# /opt/VRTSvcs/bin/hagui
hagui Start Cluster Manager in debug mode
# /opt/VRTSvcs/bin/hagui -D

Product Terminology comparisons
Sun SC 2.2 Veritas VCS 1.1
cluster name cluster name
admin workstation -
physical node A local system
physical node B remote system
physical node IP address maintenance IP address
logical host service group
logical host IP address service group IP address
- resources
disk group disk group
private heartbeats communication channels
- GAB disk (disk heartbeat)
Quorum disk -
Admin filesystem -
scinstall Quick-Start wizard
split-brain network partition

configuration files:

Friday, April 20, 2007

Veritas Volume Manager - Setup

Veritas Volume Manager allows you to add more disk
space to existing servers.

It could be by way of storage device like EMC
or an additional Hardisk.

Assuming that we need to create filesystems intended for
an Application and:

We have 9 disks, c0t0d1 through ....................c0t0d9.

First Check if Veritas Volume Manager has seen the Disks
that you have attached :
#vxdisk -o alldgs list

if not, try the following, and then repeat the previous step:


#vxdctl initdmp

#vxdctl enable

This should be able to detect disks into VVM.

Steps for setting up storage - Veritas Volume Manager

1) It is important to create a diskgroup, so that VVM can be
moved to a different hosts.

Disk Groups includes filesystems/disks of the applcations.
Commands (vxdiskadd or vxdg).

#vxdg init diskgroup diskname=device

#vxdg init ABCdg ABCdg01=c0t0d1

2) Creating Volumes with vxassist:

# vxassist -g diskgroup make vol_name size


#vxassist -g ABCdg make ABC01 8g

Note: Understanding the contents of the /etc/default/vxassist file is important, especially when striping disks.

3) Creating a VXFS filesystem:

#mkfs -F vxfs -o bsize=8192,largefiles /dev/vx/rdsk/ABCdg/ABC01

4) Mounting the VXFS file system.

Creating and mounting filesystems go hand in hand. You must be certain that any special flags set at creation time are reflected in /etc/vfstab, or on the command line if there is no entry in vfstab for your filesystem.

mount -F vxfs -o largefiles /dev/vx/dsk/ABCdg/ABC01 /u03/oradata/ABC

Please check this link for more reference ...

Note : In Case of emergency if you need to move your entire VVM to a
different host then vxdg 'deport' and 'import' commands to
migrate an entire vxvm disk group to another host.

PS : I have VVM pdf , complete summary of commands ,
let me know if interested, I can send it across.

Veritas Volume Manager - Installation Guide

Veritas Volume Manager is also called (VVM or VxVM )

Features :
1) VVM is Available for - Windows. Linux, HP-UX, Solaris, AIX.
2) Versions (3.1, 3.2, 3.5, 4.0, 4.1, 5.0).

Installing Veritas Volume Manager
  1. Insert the Veritas volume manager software cdrom into
    the cdrom drive. If volume management is enabled, it will
    automatically mount to /cdrom/volume_manager3.5
    (depending on the precise release iteration, the exact path
    may differ in your case):

  2. Change to the directory containing the Veritas Volume Manager packages:
    # cd /cdrom/volume_manager3.5/pkgs

  3. Add the required packages.
    Note that the order specified is
    siginificant in that the VRTSvlic package must be first,
    the VRTSvxvm package must be second, and then any
    remaining packages:
    #pkgadd -d . VRTSvlic VRTSvxvm VRTSvmdoc \
    VRTSvmman VRTSob VRTSobgui VRTSvmpro \
    VRTSfspro VRTSvxfs VRTSfsdoc

Once the Installation is complete as you see below:

This machine must now be rebooted in order to ensure
sane operation. Execute
shutdown -y -i6 -g0
and wait for the "Console Login:" prompt.
# shutdown -y -i6 -g0

Give the above command as it appears in the console.

Once the system reboots, apply any Veritas volume manager
patches. At the time of this writing, there are no patches
for neither volume manager or filesystem. However, future
patches (and there will be patches ;-) can be obtained from
Note that the patch installation instructions may require
that a reboot be performed after the patch is installed

Step by step guide to Solaris installation

Check the below link for Solaris Installation