- troy
Tools
basecon.pl -- converts base inputs to selected base output
create_diskmap.ksh - from opensolaris.org, lists grub device to correlating ctd and dev path
getldp.pl -- determine device information for what a network interface is connected to by way of reading CDP or LLDP packets
ioDev -- translates logical IO device names to physically identifiable locations on the host (Solaris Hosts)
ipcalc.pl -- utility for IPv4 range calculations based on CIDRs or netmasks
lprtdiag.pl -- Linux 'prtdiag' like utiltiy
op82dec.pl -- DHCP option 82 suboption 2 decoder / encoder
showdisk.pl -- displays how recognized disks are currently used on the system
timetrans.pl -- translates between UNIX epoch time and normal date/time formatscreate_diskmap.ksh - from opensolaris.org, lists grub device to correlating ctd and dev path
getldp.pl -- determine device information for what a network interface is connected to by way of reading CDP or LLDP packets
ioDev -- translates logical IO device names to physically identifiable locations on the host (Solaris Hosts)
ipcalc.pl -- utility for IPv4 range calculations based on CIDRs or netmasks
lprtdiag.pl -- Linux 'prtdiag' like utiltiy
op82dec.pl -- DHCP option 82 suboption 2 decoder / encoder
showdisk.pl -- displays how recognized disks are currently used on the system
basecon.pl (download)
user@host [0] basecon.pl -h
basecon.pl converts base inputs to selected base output
Usage: basecon.pl [ -h ]
basecon.pl [ -V ]
basecon.pl < -i IBASE > < -o OBASE > [ -v | -c [ -s CSEP ]]
[ -d ISEP ] val0 (val1 val2 ... valN)
-h This help output
-V Display basecon.pl version and exit
-i IBASE Base value of input
-o OBASE Base value to set for output
Base Values:
a ascii
b binary
d decimal
h hexadecimal
o octal
-v Verbose output (mutually exclusive to '-c')
-c CSV output (mutually exclusive to '-v')
-s CSEP CSV output delimiter (default is a pipe, '|')
-d ISEP Delimiter within an input string value
Note: If output is set to ascii, unprintable ascii characters are
replaced with '[Dval]', thus BS (backspace) would output as [D8]
Sample: convert from octal to ascii, verbose output, with '-' as
internal value delimiter:
host [0] basecon.pl -v -io -oa -d - 150 105-146-147 154 141
octal => ascii
150 => h
105-146-147 => E-f-g
154 => l
141 => a
# input file:
user@host [0] tail -5 infile0
10.132.41.251
10.132.41.252
10.132.41.253
10.132.41.254
10.132.41.255
# decimal conversion to hexadecimal
user@host [0] basecon.pl -id -oh -d . `tail -5 infile0`
0a.84.29.fb
0a.84.29.fc
0a.84.29.fd
0a.84.29.fe
0a.84.29.ff
# ascii conversion to decimal (csv output)
user@host [0] basecon.pl -c -ia -od -d " " "TiMOS CLI"
ascii|decimal
TiMOS CLI|84 105 77 79 83 67 76 73
# binary conversion to ascii
user@host [0] basecon.pl -ib -oa -d " " "01000011 01001100 01001001"
C L I
# octal conversion to hexadecimal (verbose)
user@host [0] basecon.pl -v -io -oh -d . 012.204.051.375 117.123.114.111
octal => hexadecimal
012.204.051.375 => 0a.84.29.fd
117.123.114.111 => 4f.53.4c.49
# hexadecimal conversion to ascii (verbose)
user@host [0] basecon.pl -v -ih -oa -d " " "54 69 4d 4f 53 43 4c 49"
hexadecimal => ascii
54 69 4d 4f 53 43 4c 49 => T i M O S C L I
(back to top)getldp.pl (download)
determine device information for what a network interface is connected to by way of reading CDP or LLDP packets
Usage: getldp.pl -h
getldp.pl looks for LDP (Link Discovery Protocol) packets to determine
the device connected to, device type, and interface port; assumes the
availability of snoop on Solaris or tcpdump on Linux / FreeBSD
(getldp.pl can run on other OSes if '-b' is used
to specify the path to either snoop or tcpdump.)
Usage: getldp.pl [ -h ]
getldp.pl [ -v ]
getldp.pl < -i interface > [ -t TIMEOUT ] [ -c | -l ] [ -d ]
[ -x [ -s ]] [ -b BINARY ]
-h This help output.
-v Display getldp.pl version and exit
-x verbose output
-s extra verbose (useful for LLDP); requires -x
-i interface Specify network interface to listen on or the packet
capture file to read from (required)
-t TIMEOUT Set the timeout to listen for LDP packets (default 60 sec)
-c Look for CDP packets; mutually exclusive to -l (default)
-l Look for LLDP packets; mutually exclusive to -c (optional)
-d Display the command that would be run but without
actually doing so
-b BINARY /path/to/BINARY/executable to run to capture LDP packets;
getldp.pl only knows how to handle output from
snoop and tcpdump
Sample version: getldp.pl -v
getldp.pl version: v0.1.7
Sample CDP minimal: getldp.pl -i e1000g4 -c
Watching for CDP packet on e1000g4 for 60 seconds...
device-id: ourSwitch
port-id: FastEthernet2/2
Sample CDP verbose with 120 second timeout: getldp.pl -i bge0 -x -t 120
Watching for CDP packet on bge0 for 120 seconds...
device-id: my.6509
platform: cisco WS-C6509
port-id: GigabitEthernet8/46
vtp-mgmt-dom: Services
native-vlan: 18
CDPversion: 2
Sample CDP verbose reading a VLAN tagged packet capture from file: getldp.pl -i packet-captures/new.cap -x
Watching for CDP packet on pack-cap/1.pcap for 60 seconds...
device-id: svcs.4948
platform: cisco WS-C4948
sw-version: Cisco IOS Software, Catalyst 4500 L3 Switch Software (cat4500-ENTSERVICESK9-M), Version 12.2(52)SG, RELEASE SOFTWARE (fc1)
capabilities: L3R(router) L2SW(switch) IGMP(snooping)
port-id: GigabitEthernet1/8
duplex: Full
mgmt-address: 10.19.70.42
native-vlan: 15
CDPversion: 2
priority: 7
vlanID: 77
Sample LLDP minimal: getldp.pl -i eth0 -l
Watching for LLDP packet on eth0 for 60 seconds...
device-id: 00:01:30:f9:ad:a0
port-id: 1/1
Sample LLDP verbose: getldp.pl -i eth0 -l -x
Watching for LLDP packet on eth0 for 60 seconds...
device-id: 00:01:30:f9:ad:a0
platform: Summit300-48 - Version 7.4e.1 (Build 5) by Release_Master 05/27/05 04:53:11
capabilities: L2(bridge) L3R(router)
port-id: 1/1
portDesc: Summit300-48-Port 1001
sysName: Summit300-48
mgmt-address: 00:01:30:f9:ad:a0
vlanName: v2-0488-03-0505
native-vlan: 488
Sample LLDP extra verbose: getldp.pl -i eth0 -l -xs
Watching for LLDP packet on eth0 for 60 seconds...
device-id: hwaddr: 00:01:30:f9:ad:a0
platform: val: Summit300-48 - Version 7.4e.1 (Build 5) by Release_Master 05/27/05 04:53:11
capabilities: val: L2(bridge) L3R(router)
port-id: ifName: 1/1
portDesc: val: Summit300-48-Port 1001
sysName: val: Summit300-48
mgmt-address: hwaddr: 00:01:30:f9:ad:a0
orgSpec: vlanName: v2-0488-03-0505
orgSpec: native-vlan: 488
Sample LLDP extra verbose and showing IPv4 mgmt-address: getldp.pl -i eth0 -l -xs
Watching for LLDP packet on eth0 for 60 seconds...
device-id: hwaddr: 00:13:21:4c:da:e3
platform: val: ProCurve J8762A Switch 2600-8-PWR, revision H.08.89, ROM H.08.5X (/sw/code/build/fish(ts_08_5))
capabilities: val: L2(bridge) L3R(router)
port-id: local: 1
portDesc: val: 1
sysName: val: ProCurve Switch 2600-8-PWR
mgmt-address: IPv4: 10.42.19.70
Sample snoop host diplaying CDP cmd: getldp.pl -i hme0 -x -d
Command to run:
/usr/sbin/snoop -d hme0 -s 1524 -x0 -c 1 'ether[20:2] = 0x2000' 2>&1
Sample tcpdump host displaying LLDP cmd: getldp.pl -i fxp0 -xs -l -d
Command to run:
/usr/sbin/tcpdump -i fxp0 -s 1524 -XX -c 1 'ether proto 0x88cc' 2>&1
Sample snoop host set to use tcpdump for LLDP and displaying cmd:
host [2] uname -s
SunOS
host [0] getldp.pl -b /opt/gnu/sbin/tcpdump -i qfe0 -x -l -d
Command to run:
/opt/gnu/sbin/tcpdump -i qfe0 -s 1524 -XX -c 1 'ether proto 0x88cc' 2>&1
Sample error for non-executable binary: getldp.pl -i fxp0 -xs -b /var/log/messages
/var/log/messages is not executable!
See 'getldp.pl -h' for usage!
(back to top)
ioDev (download):
translates logical IO device names to physically identifiable locations on the host (Solaris Hosts on Sun hardware only)
-------- Help Output --------
sinatra [1] /usr/local/bin/ioDev -h
ioDev reviews the available devices on a Solaris system and
identifies the IO Identifier, the physical device, and bus speed.
Usage: ioDev [ -h ]
ioDev [ -v ]
ioDev [ -l ]
ioDev [ -d | -t ] [ -x | -c ]
-h This help output.
-v Display ioDev version and exit
-l List out the hardware types ioDev knows about.
(ioDev can still be used with 'unknown' types, however
its output should be verified)
-d Review only available disk devices; mutually exclusive to -t (default)
-t Review only available tape devices; mutually exclusive to -d (optional)
-x Include original path in output (optional)
-c Output in CSV format (uses ! as delimiter (optional))
sinatra [0] /usr/local/bin/ioDev -v
ioDev version: v1.7
----- Sample x86 Output -----
ellington [0] /usr/local/bin/ioDev
-- ioDev v1.5 --
ellington: i386, X4200
Disk Device IO Ident Phys Device Bus Speed
----------------------------------------------------------------------------
c1t0d0 sd1 DVD/CDROM
c2t4d0 sd2
c3t200400A0B818481Fd12 sd47 PCI-E Slot 1
c3t200400A0B818481Fd13 sd46 PCI-E Slot 1
c3t200400A0B818481Fd14 sd51 PCI-E Slot 1
----- Sample Tape Output ----
sinatra [0] /usr/local/bin/ioDev -t
-- ioDev v1.5 --
sinatra: sparc, SPARC-Enterprise-T5220
Tape Device IO Ident Phys Device Bus Speed
----------------------------------------------------------------------------
0 (500104f0005e22c3) st5 PCI-E Slot 3 PCI-E x8P/x4E
1 (500104f0005e22c0) st4 PCI-E Slot 3 PCI-E x8P/x4E
2 (500104f0005e22bd) st3 PCI-E Slot 3 PCI-E x8P/x4E
3 (500104f0005e22ba) st6 PCI-E Slot 3 PCI-E x8P/x4E
4 (100000e0022200e6) st10 PCI-E Slot 3 PCI-E x8P/x4E
----- Sample Disk Output ----
davis [0] /usr/local/bin/ioDev -d
-- ioDev v1.5 --
davis: sparc, Sun-Fire-V490
Disk Device IO Ident Phys Device Bus Speed
----------------------------------------------------------------------------
c0t0d0 sd0 DVD/CDROM
c1t0d0 ssd1 Disk 1
c1t1d0 ssd0 Disk 2
c4t0d0 sd31 PCI Slot 1 33/66 MHz
c4t0d1 sd61 PCI Slot 1 33/66 MHz
----- Sample Device List -----
calloway [1] /usr/local/bin/ioDev -l
ioDev is functional on the following Sun box types:
1500
420R
E250
E450
V20z
V210
V240
V280 / 280R
420R
V440
V480
V490
V880
U80
Netra T 1400/1405
Netra T1 200, Netra 120, Sun Fire v120
Sun Fire T1000
Sun Fire T2000
Sun Fire X2100
Sun Fire X2200
Sun Fire X4100 / X4100 M2
Sun Fire X4200 / X4200 M2
SPARC Enterprise T5140 / T5240
SPARC Enterprise T5220
---- Tape Output w/ Path ----
armstrong [0] /usr/local/bin/ioDev -tx | head -12
-- ioDev v1.7 --
armstrong: sparc, SPARC-Enterprise-T5220
Tape Device IO Ident Phys Device Bus Speed
----------------------------------------------------------------------------
0 (500104f0005e22c3) st5 PCI-E Slot 3 PCI-E x8P/x4E
/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/st@w500104f0005e22c3,0
1 (500104f0005e22c0) st4 PCI-E Slot 3 PCI-E x8P/x4E
/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/st@w500104f0005e22c0,0
2 (500104f0005e22bd) st3 PCI-E Slot 3 PCI-E x8P/x4E
/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/st@w500104f0005e22bd,0
3 (500104f0005e22ba) st6 PCI-E Slot 3 PCI-E x8P/x4E
/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/st@w500104f0005e22ba,0
------ Tape CSV Output ------
armstrong [0] /usr/local/bin/ioDev -tc | head -6
ioDev!v1.7!armstrong!sparc!SPARC-Enterprise-T5220
Tape Device!IO Ident!Phys Device!Bus Speed!Dev Path
0 (500104f0005e22c3)!st5!PCI-E Slot 3!PCI-E x8P/x4E!/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/st@w500104f0005e22c3,0
1 (500104f0005e22c0)!st4!PCI-E Slot 3!PCI-E x8P/x4E!/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/st@w500104f0005e22c0,0
2 (500104f0005e22bd)!st3!PCI-E Slot 3!PCI-E x8P/x4E!/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/st@w500104f0005e22bd,0
3 (500104f0005e22ba)!st6!PCI-E Slot 3!PCI-E x8P/x4E!/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/st@w500104f0005e22ba,0
(back to top)
ipcalc.pl (download)
utiltity for IPv4 range calculations based on CIDRs or netmasks
ipcalc.pl Usage:
ipcalc.pl IPaddr/CIDR
ipcalc.pl IPaddr /CIDR
ipcalc.pl IPaddr NetMask
prompt# ipcalc.pl 7.7.6.191/22
7.7.6.191/22; 4 Class Cs; 1024 IP addresses
7.7.4.0 => 7.7.7.255 (255.255.252.0)
prompt# ipcalc.pl 7.7.6.191 255.255.255.240
7.7.6.191/28; 16 IP addresses
7.7.6.176 => 7.7.6.190 (255.255.255.240)
(back to top)
lprtdiag.pl (download)
Linux 'prtdiag' like utility (requires 'dmidecode' and 'lspci')
server [0] /usr/local/bin/lprtdiag.pl
System Configuration: Supermicro H8DM3-2
Memory Size: 15.68 GB
==================================== CPUs ====================================
CPU Phys ID CORE Freq Cache Bogomips
-------- -------- -------- ------------ ------------ ------------
0 0 0 2010.305 512 KB 4024.16
1 0 1 2010.305 512 KB 4022.11
2 0 2 2010.305 512 KB 4020.17
3 0 3 2010.305 512 KB 4021.15
4 1 0 2010.305 512 KB 4020.50
5 1 1 2010.305 512 KB 4021.00
6 1 2 2010.305 512 KB 4020.76
7 1 3 2010.305 512 KB 4020.57
=============================== Memory Config ================================
ID Bank Slot Size Type Detail
-------- -------- -------- ------------ ------------ ------------
0x002B DIMM0 BANK0 4.00 GB DDR2 Synchronous
0x002F DIMM2 BANK2 4.00 GB DDR2 Synchronous
0x0033 DIMM4 BANK4 4.00 GB DDR2 Synchronous
0x0037 DIMM6 BANK6 4.00 GB DDR2 Synchronous
================================ I/O Devices =================================
PCI ID Class and Vendor
Device
--------------- ---------------------------- ----------------------------
0000:00:00.0 RAM memory nVidia Corporation
MCP55 Memory Controller
0000:00:01.0 ISA bridge nVidia Corporation
MCP55 LPC Bridge
0000:00:01.1 SMBus nVidia Corporation
MCP55 SMBus
0000:00:02.0 USB Controller nVidia Corporation
MCP55 USB Controller
0000:00:02.1 USB Controller nVidia Corporation
MCP55 USB Controller
0000:00:04.0 IDE interface nVidia Corporation
MCP55 IDE
0000:00:05.0 IDE interface nVidia Corporation
MCP55 SATA Controller
0000:00:05.1 IDE interface nVidia Corporation
MCP55 SATA Controller
0000:00:05.2 IDE interface nVidia Corporation
MCP55 SATA Controller
0000:00:06.0 PCI bridge nVidia Corporation
MCP55 PCI bridge
0000:00:08.0 Bridge nVidia Corporation
MCP55 Ethernet
0000:00:09.0 Bridge nVidia Corporation
MCP55 Ethernet
0000:00:0a.0 PCI bridge nVidia Corporation
MCP55 PCI Express bridge
0000:00:0b.0 PCI bridge nVidia Corporation
MCP55 PCI Express bridge
0000:00:0c.0 PCI bridge nVidia Corporation
MCP55 PCI Express bridge
0000:00:0d.0 PCI bridge nVidia Corporation
MCP55 PCI Express bridge
0000:00:0e.0 PCI bridge nVidia Corporation
MCP55 PCI Express bridge
0000:00:0f.0 PCI bridge nVidia Corporation
MCP55 PCI Express bridge
0000:00:18.0 Host bridge Advanced Micro Devices [AMD]
Family 10h [Opteron, Athlon64, Sempron] HyperTransport Configuration
0000:00:18.1 Host bridge Advanced Micro Devices [AMD]
Family 10h [Opteron, Athlon64, Sempron] Address Map
0000:00:18.2 Host bridge Advanced Micro Devices [AMD]
Family 10h [Opteron, Athlon64, Sempron] DRAM Controller
0000:00:18.3 Host bridge Advanced Micro Devices [AMD]
Family 10h [Opteron, Athlon64, Sempron] Miscellaneous Control
0000:00:18.4 Host bridge Advanced Micro Devices [AMD]
Family 10h [Opteron, Athlon64, Sempron] Link Control
0000:00:19.0 Host bridge Advanced Micro Devices [AMD]
Family 10h [Opteron, Athlon64, Sempron] HyperTransport Configuration
0000:00:19.1 Host bridge Advanced Micro Devices [AMD]
Family 10h [Opteron, Athlon64, Sempron] Address Map
0000:00:19.2 Host bridge Advanced Micro Devices [AMD]
Family 10h [Opteron, Athlon64, Sempron] DRAM Controller
0000:00:19.3 Host bridge Advanced Micro Devices [AMD]
Family 10h [Opteron, Athlon64, Sempron] Miscellaneous Control
0000:00:19.4 Host bridge Advanced Micro Devices [AMD]
Family 10h [Opteron, Athlon64, Sempron] Link Control
0000:01:01.0 VGA compatible controller ATI Technologies Inc
ES1000
0000:02:00.0 SCSI storage controller LSI Logic / Symbios Logic
MegaRAID SAS 8208ELP/8208ELP
0000:05:00.0 PCI bridge Integrated Device Technology, Inc.
Unknown device 8018
0000:06:02.0 PCI bridge Integrated Device Technology, Inc.
Unknown device 8018
0000:06:04.0 PCI bridge Integrated Device Technology, Inc.
Unknown device 8018
0000:07:00.0 Ethernet controller Intel Corporation
82571EB Gigabit Ethernet Controller (Copper)
0000:07:00.1 Ethernet controller Intel Corporation
82571EB Gigabit Ethernet Controller (Copper)
0000:08:00.0 Ethernet controller Intel Corporation
82571EB Gigabit Ethernet Controller (Copper)
0000:08:00.1 Ethernet controller Intel Corporation
82571EB Gigabit Ethernet Controller (Copper)
0000:09:00.0 RAID bus controller 3ware Inc
Unknown device 1005
0000:0b:01.0 PCI bridge Advanced Micro Devices [AMD]
AMD-8132 PCI-X Bridge
0000:0b:01.1 PIC Advanced Micro Devices [AMD]
AMD-8132 PCI-X IOAPIC
0000:0b:02.0 PCI bridge Advanced Micro Devices [AMD]
AMD-8132 PCI-X Bridge
0000:0b:02.1 PIC Advanced Micro Devices [AMD]
AMD-8132 PCI-X IOAPIC
==================================== BIOS ====================================
American Megatrends Inc. - version: 080014 - release: 03/31/2008
(back to top)
op82dec.pl (download)
DHCP option 82 suboption 2 decoder / encoder
server [0] /usr/local/bin/op82dec.pl -h
op82dec.pl decodes / encodes the option 82 string passed to a dhcp
server, specifically option 82 suboption 2 (relay-agent-remote-id)
Usage: op82dec.pl [-h|--help]
op82dec.pl -d [-v] op82_string0 [op82_stringN]
op82dec.pl -e IPaddr shelf/slot/port VPI VCI
Sample: op82dec.pl -d 01:01:00:00:ac:08:20:56:22:dd:01:ae
01:01:00:00:ac:08:20:56:22:dd:01:ae : 172.8.32.86 : 2/0/2 : 221 : 430
op82dec.pl -d -v 01:01:00:00:ac:08:20:56:22:dd:01:ae
op82 remoteId: 01:01:00:00:ac:08:20:56:22:dd:01:ae
NAS IP: 172.8.32.86
Slot/Mod/Port: 2/0/2
VPI: 221
VCI: 430
op82dec.pl -e 172.8.32.86 2/0/2 221 430
01:01:00:00:ac:08:20:56:22:dd:01:ae : 172.8.32.86 : 2/0/2 : 221 : 430
(back to top)
showdisk.pl (download)
displays how recognized disks are currently used on the system
## help output
ironman [0] /usr/local/bin/showdisk.pl -h
showdisk.pl displays how recognized disks are currently used on the
system; unconfigured disks not shown
Usage: showdisk.pl [ -h ]
showdisk.pl [ -v ]
showdisk.pl [ -l ]
showdisk.pl [ -c ]
-h This help output.
-v Display showdisk.pl version and exit
-l List out supported OSes
-c Output to CSV format ('!' delimited)
Output notes:
'disk' column contains:
list of disks as derived from /dev
'use' column can contain:
hwr => hardware RAID [ solaris ]
svm => Solstice DiskSuite [ solaris ]
vxvm => Veritas Volume Manager [ solaris ]
mnt => normal mount [ all hosts ]
swp => swap space [ all hosts ]
zfs => ZFS (Zetabyte File System) [ solaris, freebsd ]
ccd => ccd (Concat Disk Driver) [ freebsd ]
geom => geom (raid 0, 1, 3, 01, 10) [ freebsd ]
lvm => Logical Volume Manager [ linux ]
md => MD (Software RAID) [ linux ]
vxdmp => Veritas Dynamic Multipathing [ solaris ]
mpxio => Sun's Multiplexed I/O (DMP) [ solaris ]
'slice' column contains:
either the disk slice in use or else 'disk' if the whole disk
is being used (under FreeBSD, 'disk slice' can refer to either
the BIOS slice and disk partition (s1a in da0s1a) or simply
the disk partition if no BIOS slices have been configured
(e in da0e)
'component of' column info:
hwr => if the disk is a of a RAID volume, this column
will list those disks comprising the RAID volume
in CHID.TRGT.LUN manner, comma delimited
svm => comma delimited list of metadevices this disk or
disk slice is part of (only reviews two levels
above a base disk)
vxvm => if the disk (or slice) is part of an imported DG,
this column lists the VX subdisk name (SD) of
the disk followed by the VX disk group in
brackets '[]'; if part of a deported DG, this
column displays '-' for the SD and the DG in
bracketted parens '[()]'
mnt => displays the current mount point and FS type of
the mounted slice
swp => lists if the disk or slice is used for swap
zfs => lists the zpool that the disk / slice is part of
ccd => lists the ccd device the disk / slice is part of
geom => lists the geom device the disk / slice is part of
lvm => lists the lvm device the disk / slice is part of
md => lists the md device the disk / slice is part of
vxdmp => lists the Veritas 'daname' that this disk is a
path to
mpxio => lists the MPxIO device that this disk is a path to;
due to Sun's method of "hiding" the underlying
subdisks, while MPxIO is controlling the device there
may not be a dev tree path for the subdisk listed
under column 'disk', thought there will be one for
the MPxIO device in the 'component of' column
## version output
ironman [10] /usr/local/bin/showdisk.pl -v
showdisk.pl version: v0.3.2
ironman [1]
## output of known types
sweetleaf [0] /usr/local/bin/showdisk.pl -l
showdisk.pl known OS and Device types:
Solaris (under /dev/dsk):
cXtYdZs2, cXdYpZ, cXdYs2
FreeBSD (under /dev):
ad, da, fla, aacd, mlxd, amrd, idad, twed
Red Hat Linux / Variants (under /dev):
hd, sd, ed, xd
## CSV output
beastie [0] ./showdisk.pl -c
header!beastie: FreeBSD
header!(runtime: 1285569437)
disk!use!slice!component of
da0!mnt!s1a!/ (ufs)
da0!mnt!s1d!/var (ufs)
da0!swp!s1b!swap
## Solaris run
sweetleaf [0] /usr/local/bin/showdisk.pl
sweetleaf: SunOS
(runtime: 1284666515)
disk use slice component of
========================================== ==== ======= ======================
c0t0d0 svm s0 d1, d0
c0t0d0 svm s1 d11, d10
c0t0d0 svm s3 d31, d30
c0t0d0 svm s4 d41, d40
c0t0d0 svm s7 d71, d70
c0t1d0 svm s0 d2, d0
c0t1d0 svm s1 d12, d10
c0t1d0 svm s3 d32, d30
c0t1d0 svm s4 d42, d40
c0t1d0 svm s7 d72, d70
c1t0d0 hwr disk 0.0.0, 0.1.0
c1t0d0 mnt s5 /app (ufs)
c1t0d0 swp s1 swap
c2t2B01348AE3446720d0 vxvm disk - [(databasedg)]
c2t2B01348AE3446720d10 vxvm disk - [(toolsdg)]
c2t2B01348AE3446720d11 vxvm disk - [(backupdg)]
c2t2B01348AE3446720d2 vxvm disk - [(databasedg)]
c2t2B01348AE3446720d4 vxvm disk - [(databasedg)]
c2t2B01348AE3446720d5 vxvm disk - [(databasedg)]
c2t2B01348AE3446720d6 vxvm disk - [(prodappdg)]
c2t2B01348AE3446720d7 vxvm disk - [(prodappdg)]
c3t2078A873E12F0248d13 vxvm disk mon01 [mondg]
c3t2078A873E12F0248d14 vxvm disk mon02 [mondg]
c3t2078A873E12F0248d15 vxvm disk mondg03 [mondg]
c3t6700EB43825576800000232B4738E100d0 zfs disk sweetleaf01
c3t6700EB43825576800000232B4738E101d0 zfs disk sweetleaf03
c3t6700EB43825576800000232B4738E102d0 zfs disk sweetleaf01
c3t6700EB43825576800000232B4738E103d0 zfs disk sweetleaf03
c3t6700EB43825576800000232B4738E104d0 zfs disk sweetleaf01
c3t6700EB43825576800000232B4738E105d0 zfs disk sweetleaf02
c3t6700EB43825576800000232B4738E106d0 zfs disk sweetleaf01
c3t6700EB43825576800000232B4738E107d0 zfs disk sweetleaf03
c3t6700EB43825576800000232B4738E108d0 zfs disk sweetleaf01
c3t6700EB43825576800000232B4738E109d0 zfs disk sweetleaf03
c3t6700EB43825576800000232B4738E10Ad0 zfs disk sweetleaf01
c3t6700EB43825576800000232B4738E10Bd0 zfs disk sweetleaf03
c3t6700EB43825576800000232B4738E10Cd0 zfs disk sweetleaf01
c3t6700EB43825576800000232B4738E10Dd0 zfs disk sweetleaf03
c3t6700EB43825576800000232B4738E10Ed0 zfs disk sweetleaf03
c3t6700EB43825576800000232B4738E10Fd0 zfs disk sweetleaf03
c3t6700EB43825576800000232B4738E110d0 zfs disk sweetleaf01
c3t6700EB43825576800000232B4738E111d0 zfs disk sweetleaf03
## FreeBSD run:
# beastie (freebsd test host), yes, devices get reused on this host
beastie [0] /usr/local/bin/showdisk.pl
beastie: FreeBSD
(runtime: 1285562334)
disk use slice component of
========================================== ==== ======= ======================
da0 mnt s1a / (ufs)
da0 mnt s1d /var (ufs)
da0 swp s1b swap
da1 ccd s1a ccd1
da1 ccd s1b ccd1
da1 ccd s1d ccd2
da1 ccd s1e ccd0
da1 geom s1a stripe0, mirror1
da1 geom s1b mirror2, stripe3
da1 geom s1d stripe1, mirror1
da1 geom s1e mirror0
da1 geom s1f mirror3, stripe3
da1 zfs disk mypool
da1 zfs s1a apool
da1 zfs s1b bpool
da1 zfs s1d bpool
da1 zfs s1e npoolrz
da1 zfs s1f npoolrz
da2 ccd s1a ccd1
da2 ccd s1b ccd1
da2 ccd s1d ccd2
da2 ccd s1e ccd0
da2 geom s1a stripe0, mirror1
da2 geom s1b mirror2, stripe3
da2 geom s1d stripe1, mirror1
da2 geom s1e mirror0
da2 geom s1f mirror3, stripe3
da2 zfs disk mypool
da2 zfs s1a apool
da2 zfs s1b bpool
da2 zfs s1d bpool
da2 zfs s1e npoolrz
da2 zfs s1f npoolrz
## Linux run:
# tux (linux test host), yes, devices get reused on this host
tux [0] /usr/local/bin/showdisk.pl
tux: Linux
(runtime: 1286256239)
disk use slice component of
========================================== ==== ======= ======================
sda mnt 1 / (ext3)
sda mnt 2 /var (ext3)
sda swp 3 swap
sdb lvm 1 cdg0
sdb lvm 2 sdg
sdb lvm 3 sdg
sdb lvm 5 mdg
sdb lvm 6 mdg
sdb md 1 md127
sdb md 3 md_d127, md10
sdb md 5 md_d127, md10, md21, md20
sdb md 6 md1, md10, md22, md20
sdb md disk md0
sdc lvm 1 cdg1
sdc lvm 2 sdg
sdc lvm 3 sdg
sdc lvm 5 mdg
sdc lvm 6 mdg
sdc md 1 md127
sdc md 3 md_d127
sdc md 5 md_d127, md10, md21, md20
sdc md 6 md1, md10, md22, md20
sdc md disk md0
(back to top)
timetrans.pl (download):
translates between UNIX epoch time and normal date/time formats
somehost [0] timetrans.pl -h
timetrans.pl translates between UNIX epoch time and normal date/time
formats, optionally accepting either as input as well as the use of
modifiers to further adjust the resulting time.
Usage: timetrans.pl [-h|H]
timetrans.pl [-v]
timetrans.pl [-d|-e] [-l|-u] [-s] [-t (+|-)time]
[SECONDS|[yyyy/mm/dd@HH:MM:SS|yyyy/mm/dd HH:MM:SS]]
-h This help output.
-H Sample usage examples.
-v Display timetrans.pl version and exit
-d Force output to only normal data/time format; mutually
exclusive of -e; if set, -s is ignored (optional)
-e Force output to only epoch time format; mutually exclusive
to -d; if set, -s is ignored (optional)
-l Output time in localtime; mutually exclusive to -u
(default)
-u Output time in UTC; mutually exclusive to -l (optional)
-s Short output; returns only the translated value; ignored
if either -e or -d are set; if TIME value is not set,
short output defaults to date/time format (optional)
-t Modify time by (+|-) time; accepts values of seconds
or increment multipliers of (s|m|h|d|w) wherein
+3w2d1h5m20s would add a multiplier of 3 weeks, 2
days 1 hour, 5 minutes, and 20 seconds to the time
value; if no multiplier, the value is considered to
be seconds; if no (+|-), the value is added (optional)
TIME Input time value of SECONDS from 1970/01/01 00:00:00
UTC (UNIX epoch) or as a normalized local date/time
formatted either as 'yyyy/mm/dd@HH:MM:SS' or
'yyyy/mm/dd HH:MM:SS'; if not specified, current
time is used; can be a negative value, however it
must be preceded by flag '--'; TIME input can also
be piped to timetrans.pl (optional)
somehost [10]
Sample Usage Output:
somehost [0] timetrans.pl -H
timetrans.pl sample usage examples. For option descriptions, please see:
'timetrans.pl -h'
EXAMPLES:
Display version:
somehost [0] timetrans.pl -v
timetrans.pl version: v0.1.1
No parameters or time input:
somehost [0] timetrans.pl
2012/03/29 00:38:12 -0400
UNIX time: 1332995892
Using a negative time modifier with epoch time:
somehost [0] timetrans.pl -t-1d37m 1280550076
2010/07/29 23:44:16 -0400
UNIX time: 1280461456
Using normalized local date/time input:
somehost [0] timetrans.pl 2010/07/31 00:21:16
2010/07/31 00:21:16 -0400
UNIX time: 1280550076
Using normalized local date/time piped input:
somehost [0] echo "2010/07/31:21:16" | timetrans.pl
2010/07/31 00:21:16 -0400
UNIX time: 1280550076
Using piped data/time input and requesting short output:
somehost [0] echo "2010/07/31 00:21:16" | timetrans.pl -s
1280550076
Using epoch time input and requesting short output:
somehost [0] timetrans.pl -s 1280550076
2010/07/31 00:21:16 -0400
Using piped epoch time input with a time modifier and epoch time output:
somehost [0] echo "1280550076" | timetrans.pl -t +2w3d4m5 -e
1282019121
Using a time modifier with local date/time input:
somehost [0] timetrans.pl -t86400 2010/08/18 00:25:21
2010/08/19 00:25:21 -0400
UNIX time: 1282191921
Using a negative time modifier with time/date input and time/date output:
somehost [0] timetrans.pl -d -t -86400 2010/08/18 00:25:21
2010/08/17 00:25:21 -0400
Using a time modifier with local time/date input and UTC time/date output:
somehost [0] timetrans.pl -d -u -t86400 2010/08/18 00:25:21
2010/08/19 00:25:21 UTC
Using a negative epoch time input:
somehost [0] timetrans.pl -- -1282191921
1929/05/15 15:34:39 -0400
UNIX time: -1282191921
somehost [0]
(back to top)
create_diskmap.ksh (download)
displays grub drive numbering correlating ctd and device paths in solaris; taken from the OpenSolaris project, original version available here. Output directs to /var/run/solaris_grubdisk.map. Sample output: snorkle [0] /usr/bin/cat /var/run/solaris_grubdisk.map 0 c1t0d0 /pci@0,0/pci1000,8000@14/sd@0,0 1 c1t1d0 /pci@0,0/pci1000,8000@14/sd@1,0
(back to top)