17 Ağustos 2012, 01:10 | #1 | |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | scsi device bulma betiği #!/bin/bash # scsi-map - show how SCSI devices are configured by the system # Copyright (C) 2011 Dennis Leeuw # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # A copy of the GNU General Public Licens can be found at: # < Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. function get_kdevice() { local my_dev=$1 local out="" # Get device if [ -d /sys/block/${my_dev} ] then my_out=`echo /sys/block/${my_dev}/device/scsi_disk* 2>/dev/null` my_out=${my_out#*scsi_disk:} echo ${my_out#*scsi_disk\*} return 0 fi return 1 } function get_bus_id() { # Get busID local tmp="" local my_dev=$1 local my_request=$2 local my_busid=`ls -l /dev/disk/by-path/* | grep ${my_dev}$` my_busid=${my_busid#*by-path/} my_busid=${my_busid%% *} # busid = bus-device-protocol-address-part* case $my_request in bus) echo ${my_busid} | cut -d- -f1 return 0 ;; device) echo ${my_busid} | cut -d- -f2 return 0 ;; protocol) echo ${my_busid} | cut -d- -f3 return 0 ;; address) local my_address=`echo ${my_busid} | cut -d- -f4-` if [ "${my_address}" = "" ] && [ -L /sys/block/${my_dev}/device ] then my_address=`ls -l /sys/block/${my_dev}/device` my_address=${my_address##*/} fi echo $my_address return 0 ;; esac } function get_dev_holders() { local sys_path=`find /sys -name $1 | grep -vE "slaves|holders"` local holders=`echo ${sys_path}/holders/*` local holder="" for holder in ${holders} do holder=${holder#*holders/} holder=${holder#\*} echo -n "$holder " done } function show_all() { for bdev in `echo /dev/sd*` do # Get base name bdev_name=${bdev##*/} show_dev ${bdev_name} done } function show_dev() { local bdev_name=$1 # busid = bus-device-protocol-address-part* bdev_bus=`get_bus_id ${bdev_name} bus` bdev_device=`get_bus_id ${bdev_name} device` bdev_protocol=`get_bus_id ${bdev_name} protocol` bdev_address=`get_bus_id ${bdev_name} address` bdev_id=`get_kdevice ${bdev_name}` if [ $? = 1 ] then # Assume partition bdev_id=${bdev_address%-part*} fi bdev_holders=`get_dev_holders ${bdev_name}` if [ "${bdev_holders}" = "" ] then bdev_holders="----" fi # Get generic device if [ -d /sys/bus/scsi/devices/${bdev_id} ] then ## Get generic device if [ -L /sys/bus/scsi/devices/${bdev_address}/generic ] then bdev_generic=`ls -l /sys/bus/scsi/devices/${bdev_address}/generic` bdev_generic=${bdev_generic##*/} fi ## Get status if [ -f /sys/bus/scsi/devices/${bdev_id}/state ] then bdev_status=`cat /sys/bus/scsi/devices/${bdev_id}/state` fi else bdev_generic="---" bdev_status="-------" fi echo ${bdev_bus} ${bdev_device} ${bdev_protocol} ${bdev_address} ${bdev_id} ${bdev_generic} ${bdev_name} ${bdev_status} ${bdev_holders} } if [ "$1 $2" = "show all" ] then show_all elif [ "$1" = "show" ] then show_dev $2 else echo "Help" fi
__________________ Bilgiyi Paylaşalım....! Bilgi Paylaşılınca Güzeldir....! Kullanıcı imzalarındaki bağlantı ve resimleri görebilmek için en az 20 mesaja sahip olmanız gerekir ya da üye girişi yapmanız gerekir. | |
|
Etiketler |
betiği, bulma, device, scsi |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
Benzer Konular | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
Device | PySSyCaT | Bilgisayar Sözlüğü | 0 | 07 Şubat 2016 14:57 |
Virtual box betiği (Alıntı) | IUC | GNU, Linux ve UNIX | 0 | 17 Ağustos 2012 12:19 |
pci device bulma betiği .sh | IUC | GNU, Linux ve UNIX | 0 | 17 Ağustos 2012 01:09 |