Sponsored Content
Full Discussion: Grep for string
Homework and Emergencies Emergency UNIX and Linux Support Grep for string Post 302506070 by LivinFree on Friday 18th of March 2011 11:49:20 AM
Old 03-18-2011
Assuming this is a Linux kernel, have you tried looking in the /sys filesystem?

It's all driver and device specific, so I can't give you any better answers in this case off-hand, but here's some examples from a system of mine with FC storage:
Code:
$ readlink /sys/block/sda
../devices/pci0000:00/0000:00:02.0/0000:09:00.0/0000:0a:00.0/0000:0b:00.0/host2/rport-2:0-0/target2:0:0/2:0:0:1/block/sda
$ readlink /sys/block/sda/device
../../../2:0:0:1

That is *much* easier to parse...
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

| help | unix | grep - Can I use grep to return a string with exactly n matches?

Hello, I looking to use grep to return a string with exactly n matches. I'm building off this: ls -aLl /bin | grep '^.\{9\}x' | tr -s ' ' -rwxr-xr-x 1 root root 632816 Nov 25 2008 vi -rwxr-xr-x 1 root root 632816 Nov 25 2008 view -rwxr-xr-x 1 root root 16008 May 25 2008... (7 Replies)
Discussion started by: MykC
7 Replies

2. Shell Programming and Scripting

Grep for a string and then grep using a string from that result

Hello, Thanks in advance for the query. There is a log file abcd.log which has multible line like this. "hello1" , "hello2", "hello3" , "hello4" , "hello5" I want to grep for the lines which has "hello4" & "hello5" and use "hello2" to grep the same log file again. All these should... (8 Replies)
Discussion started by: kzenthil
8 Replies

3. Shell Programming and Scripting

grep on string and printing line after until another string has been found

Hello Everyone, I just started scripting this week. I have no background in programming or scripting. I'm working on a script to grep for a variable in a log file Heres what the log file looks like. The x's are all random clutter xxxxxxxxxxxxxxxxxxxxx START: xxxxxxxxxxxx... (7 Replies)
Discussion started by: rxc23816
7 Replies

4. Shell Programming and Scripting

Grep a string and write a value to next line of found string

Hi, I have two variables x and y. i need to find a particular string in a file, a workflow name and then insert the values of x and y into the next lines of the workflow name. basically it is like as below wf_xxxxxx $$a= $$b= $$c= figo $$d=bentley i need to grep the 'wf_xxxx' and then... (6 Replies)
Discussion started by: angel12345
6 Replies

5. Shell Programming and Scripting

Grep a string from input file and delete next three lines including the line contains string in xml

Hi, 1_strings file contains $ cat 1_strings /home/$USER/Src /home/Valid /home/Review$ cat myxml <projected value="some string" path="/home/$USER/Src"> <input 1/> <estimate value/> <somestring/> </projected> <few more lines > <projected value="some string" path="/home/$USER/check">... (4 Replies)
Discussion started by: greet_sed
4 Replies

6. Shell Programming and Scripting

grep exact string from files and write to filename when string present in file

I am attempting to grep an exact string from a series of files within a directory and append that output to the filename when it is present in the file. I've been after this all day with no luck. Thanks for your help in advance :wall:. (4 Replies)
Discussion started by: JC_1
4 Replies

7. Shell Programming and Scripting

Grep string in files and list file names that contain the string

Hi, I have a list of zipped files. I want to grep for a string in all files and get a list of file names that contain the string. But without unzipping them before that, more like using something like gzcat. My OS is: SunOS test 5.10 Generic_142900-13 sun4u sparc SUNW,SPARC-Enterprise (8 Replies)
Discussion started by: apenkov
8 Replies

8. Shell Programming and Scripting

Grep exact string from main string

Hi , am getting output file, it sontains the below values. ./hawk_DOM1_FIRST_ENV ./hawk_DOM2_SECOND_ENV ./hawk_DOM3_THIRD_ENV Now I need to grep the word "DOM1_FIRST_ENV","DOM2_SECOND_ENV" like that. I tired with cut -d "_". Its not working with any deleimiter. Can you please help to... (3 Replies)
Discussion started by: ckchelladurai
3 Replies

9. Shell Programming and Scripting

Grep a string and count following lines starting with another string

I have a large dataset with following structure; C 0001 Carbon D SAR001 methane D SAR002 ethane D SAR003 propane D SAR004 butane D SAR005 pentane C 0002 Hydrogen C 0003 Nitrogen C 0004 Oxygen D SAR011 ozone D SAR012 super oxide C 0005 Sulphur D SAR013... (3 Replies)
Discussion started by: Syeda Sumayya
3 Replies

10. UNIX for Beginners Questions & Answers

Grep a sub-string from a string stored in a variable.

For example: I am grepping "Hello" from a file and there are 10 matches. So all ten lines with match will get stored into a variable($match). Now I want to ignore those lines which have "Hi" present in that. Currently I tried this: match = grep "Hello" file | grep -v "Hi" file But that's not... (2 Replies)
Discussion started by: pavan
2 Replies
CCISS_VOL_STATUS(8)													       CCISS_VOL_STATUS(8)

NAME
cciss_vol_status - show status of logical drives attached to HP Smartarray controllers SYNOPSIS
cciss_vol_status [OPTION] [DEVICE]... DESCRIPTION
Shows the status of logical drives configured on HP Smartarray controllers. OPTIONS
-p, --persnickety Without this option, device nodes which can't be opened, or which are not found to be of the correct device type are silently ignored. This lets you use wildcards, e.g.: cciss_vol_status /dev/sg* /dev/cciss/c*d0, and the program will not complain as long as all devices which are found to be of the correct type are found to be ok. However, you may wish to explicitly list the devices you expect to be there, and be notified if they are not there (e.g. perhaps a PCI slot has died, and the system has rebooted, so that what was once /dev/cciss/c1d0 is no longer there at all). This option will cause the program to complain about any device node listed which does not appear to be the right device type, or is not openable. -C, --copyright If stderr is a terminal, Print out a copyright message, and exit. -q, --quiet This option doesn't do anything. Previously, without this option and if stderr is a terminal, a copyright message precedes the nor- mal program output. Now, the copyright message is only printed via the -C option. -s Query each physical drive for S.M.A.R.T data and report any drives in "predictive failure" state. -u, --try-unknown-devices If a device has an unrecognized board ID, normally the program will not attempt to communicate with it. In case you have some Smart Array controller which is newer than this program, the program may not recognize it. This option permits the program to attempt to interrogate the board even if it is unrecognized on the assumption that it is in fact a Smart Array of some kind. -v, --version Print the version number and exit. -x, --exhaustive Deprecated. Previously, it "exhaustively" searched for logical drives, as, under some circumstances some logical drives might oth- erwise be missed. This option no longer does anything, as the algorithm for finding logical drives was changed to obviate the need for it. DEVICE
The DEVICE argument indicates which RAID controller is to be queried. Note, that it indicates which RAID controller, not which logical drive. For the cciss driver, the "d0" nodes matching "/dev/cciss/c*d0" are the nodes which correspond to the RAID controllers. (See note 1, below.) It is not necessary to invoke cciss_vol_status on each logical drive individually, though if you do this, each time it will report the status of ALL logical drives on the controller. For the hpsa driver, or for fibre attached MSA1000 family devices, or for the hpahcisr sotware RAID driver which emulates Smart Arrays, the RAID controller is accessed via the scsi generic driver, and the device nodes will match "/dev/sg*" Some variants of the "lsscsi" tool will easily identify which device node corresponds to the RAID controller. Some variants may only report the SCSI nexus (con- troller/bus/target/lun tuple.) Some distros may not have the lsscsi tool. Executing the following query to the /sys filesystem and correlating this with the contents of /proc/scsi/scsi or output of lsscsi can help in finding the right /dev/sg node to use with cciss_vol_status: wumpus:/home/scameron # ls -l /sys/class/scsi_generic/* lrwxrwxrwx 1 root root 0 2009-11-18 12:31 /sys/class/scsi_generic/sg0 -> ../../devices/pci0000:00/0000:00:02.0/0000:02:00.0/0000:03:03.0/host0/target0:0:0/0:0:0:0/scsi_generic/sg0 lrwxrwxrwx 1 root root 0 2009-11-18 12:31 /sys/class/scsi_generic/sg1 -> ../../devices/pci0000:00/0000:00:1f.1/host2/target2:0:0/2:0:0:0/scsi_generic/sg1 lrwxrwxrwx 1 root root 0 2009-11-19 07:47 /sys/class/scsi_generic/sg2 -> ../../devices/pci0000:00/0000:00:05.0/0000:0e:00.0/host4/target4:3:0/4:3:0:0/scsi_generic/sg2 wumpus:/home/scameron # cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: COMPAQ Model: BD03685A24 Rev: HPB6 Type: Direct-Access ANSI SCSI revision: 03 Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: SAMSUNG Model: CD-ROM SC-148A Rev: B408 Type: CD-ROM ANSI SCSI revision: 05 Host: scsi4 Channel: 03 Id: 00 Lun: 00 Vendor: HP Model: P800 Rev: 6.82 Type: RAID ANSI SCSI revision: 00 wumpus:/home/scameron # lsscsi [0:0:0:0] disk COMPAQ BD03685A24 HPB6 /dev/sda [2:0:0:0] cd/dvd SAMSUNG CD-ROM SC-148A B408 /dev/sr0 [4:3:0:0] storage HP P800 6.82 - From the above you can see that /dev/sg2 corresponds to SCSI nexus 4:3:0:0, which corresponds to the HP P800 RAID controller listed in /proc/scsi/scsi. EXAMPLE
[root@somehost]# cciss_vol_status -q /dev/cciss/c*d0 /dev/cciss/c0d0: (Smart Array P800) RAID 0 Volume 0 status: OK. /dev/cciss/c0d0: (Smart Array P800) RAID 0 Volume 1 status: OK. /dev/cciss/c0d0: (Smart Array P800) RAID 1 Volume 2 status: OK. /dev/cciss/c0d0: (Smart Array P800) RAID 5 Volume 4 status: OK. /dev/cciss/c0d0: (Smart Array P800) RAID 5 Volume 5 status: OK. /dev/cciss/c0d0: (Smart Array P800) Enclosure MSA60 (S/N: USP6340B3F) on Bus 2, Physical Port 1E status: Power Supply Unit failed /dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 0 status: OK. /dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 1 status: OK. /dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 2 status: OK. /dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 3 status: OK. /dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 4 status: OK. /dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 5 status: OK. /dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 6 status: OK. /dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 7 status: OK. [root@someotherhost]# cciss_vol_status -q /dev/sg0 /dev/cciss/c*d0 /dev/sg0: (MSA1000) RAID 1 Volume 0 status: OK. At least one spare drive. /dev/sg0: (MSA1000) RAID 5 Volume 1 status: OK. /dev/cciss/c0d0: (Smart Array P800) RAID 0 Volume 0 status: OK. [root@localhost]# ./cciss_vol_status -s /dev/sg1 /dev/sda: (Smart Array P410i) RAID 0 Volume 0 status: OK. connector 1I box 1 bay 1 HP DG072A9BB7 B365P6803PCP0633 HPD0 S.M.A.R.T. predictive failure. [root@localhost]# echo $? 1 [root@localhost]# ./cciss_vol_status -s /dev/cciss/c0d0 /dev/cciss/c0d0: (Smart Array P800) RAID 0 Volume 0 status: OK. connector 2E box 1 bay 8 HP DF300BB6C3 3LM08AP700009713RXUT HPD3 S.M.A.R.T. predictive failure. /dev/cciss/c0d0: (Smart Array P800) Enclosure MSA60 (S/N: USP6340B3F) on Bus 2, Physical Port 2E status: OK. DIAGNOSTICS
Normally, a logical drive in good working order should report a status of "OK." Possible status values are: "OK." (0) - The logical drive is in good working order. "FAILED." (1) - The logical drive has failed, and no i/o to it is poosible. Additionally, failed drives will be identified by connector, box and bay, as well as vendor, model, serial number, and firmware revision. "Using interim recovery mode." (3) - One or more drives has failed, but not so many that the logical drive can no longer operate. The failed drives should be replaced as soon as possible. "Ready for recovery operation." (4) - Failed drive(s) have been replaced, and the controller is about to begin rebuilding redundant parity data. "Currently recovering." (5) - Failed drive(s) have been replaced, and the controller is currently rebuilding redundant parity information. "Wrong physical drive was replaced." (6) - A drive has failed, and another (working) drive was replaced. "A physical drive is not properly connected." (7) - There is some cabling or backplane problem in the drive enclosure. (From fwspecwww.doc, see cpqarray project on sourceforge.net): Note: If the unit_status value is 6 (Wrong physical drive was replaced) or 7 (A physical drive is not properly connected), the unit_status of all other configured logical drives will be marked as 1 (Logical drive failed). This is to force the user to correct the problem and to insure that once the problem is corrected, the data will not have been corrupted by any user action. "Hardware is overheating." (8) - Hardware is too hot. "Hardware was overheated." (9) - At some point in the past, the hardware got too hot. "Currently expannding." (10) - The controller is currently in the process of expanding a logical drive. "Not yet available." (11) - The logical drive is not yet finished being configured. "Queued for expansion." (12) - The logical drive will be expended when the controller is able to begin working on it. Additionally, the following messages may appear regarding spare drive status: "At least one spare drive designated" "At least one spare drive activated and currently rebuilding" "At least one activated on-line spare drive is completely rebuilt on this logical drive" "At least one spare drive has failed" "At least one spare drive activated" "At least one spare drive remains available" Active spares will be identified by connector, box and bay, as well as by vendor, model, serial number, and firmware revision. For each logical drive, the total number of failed physical drives, if more than zero, will be reported as: "Total of n failed physical drives detected on this logical drive." with "n" replaced by the actual number, of course. "Replacement" drives -- newly inserted drives that replace a previously failed drive but are not yet finished rebuilding -- are also iden- tified by connector, box and bay, as well as by vendor, model, serial number, and firmware revision. If the -s option is specified, each physical drive will be queried for S.M.A.R.T data, any any drives in predictive failure state will be reported, identified by connector, box and bay, as well as vendor, model, serial number, and firmware revision. Additionally failure conditions of disk enclosure fans, power supplies, and temperature are reported as follows: "Fan failed" "Temperature problem" "Door alert" "Power Supply Unit failed" FILES
/dev/cciss/c*d0 (Smart Array PCI controllers using the cciss driver) /dev/sg* (Fibre attached MSA1000 controllers and Smart Array controllers using the hpsa driver or hpahcisr software RAID driver.) EXIT CODES
0 - All configured logical drives queried have status of "OK." 1 - One or more configured logical drives queried have status other than "OK." AUTHOR
Written by Stephen M. Cameron REPORTING BUGS
MSA500 G1 logical drive numbers may not be reported correctly. I've seen enclosure serial numbers contain garbage. Report bugs to <steve.cameron@hp.com> COPYRIGHT
Copyright (C) 2007 Hewlett-Packard Development Company, L.P. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICU- LAR PURPOSE. SEE ALSO
http://cciss.sourceforge.net NOTE 1 The /dev/cciss/c*d0 device nodes of the cciss driver do double duty. They serve as an access point to both the RAID controllers, and to the first logical drive of each RAID controller. Notice that a /dev/cciss/c*d0 node will be present for each controller even if no logical drives are configured on that controller. It might be cleaner if the driver had a special device node just for the controller, instead of making these device nodes do double duty. It has been like that since the 2.2 linux kernel timeframe. At that time, device major and minor nodes were statically allocated at compile time, and were in short supply. Changing this behavior at this point would break lots of userland programs. cciss_vol_status (ccissutils) Nov 2009 CCISS_VOL_STATUS(8)
All times are GMT -4. The time now is 08:29 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy