环境:CentOS 6.4
磁盘:/dev/sd* device files are for SCSI, SATA disks
生成文件:/etc/udev/rules.d/99-oracle-asmdevices.rules 文件名称为自定义
============================================================================================
脚本内容:
#!/bin/bash
line=4 ---该参数定义使用udev绑定的第一块盘位于提取的disks列表的第几行
disks=(`fdisk -l | grep "Disk /dev/sd*"| awk -F: {'print $1'}|awk -F' ' {'print $2'}|sed -n ''$line',$p'`) ---获取的系统中的磁盘列表
#echo ${disks[*]}
#echo ${#disks[*]}
#echo ${disks[0]}
i=1 ---生成的文件中的盘文件后缀,标示同一功能磁盘数量
disku=(ocr data) ---标示磁盘用途,用作ocr还是data.
k=0 ---ocr盘数量标示
for device in ${disks[*]}
do
if [ $i -gt 3 ]; then
k=1
i=`expr $i - 3`
fi
room=`fdisk -l | grep $device|awk {'print $3$4'}|awk -F, {'print $1'}`
echo \#$i $device=$room>>/etc/udev/rules.d/99-oracle-asmdevices.rules ---将每块盘的路径名称以及磁盘容量加入到udev配置文件
scid=`/sbin/scsi_id --whitelisted --replace-whitespace --device=$device` ---获取指定磁盘的uuid
echo KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"$scid\", NAME=\"asm-${disku[$k]}$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\">>/etc/udev/rules.d/99-oracle-asmdevices.rules
i=` expr $i + 1 `
done
------------------------------------------------------------------------------------------------------------------------------------------------------
注意:使用该脚本,首先要确认出已经使用的盘是在$line行之前,这是关键。
生成的99-oracle-asmdevices.rules
#1 /dev/sdd=2147MB
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBc73c21d8-a786643d", NAME="asm-ocr1", OWNER="grid", GROUP="asmadmin", MODE="0660"
#2 /dev/sde=2147MB
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB3fcb60bf-40afb527", NAME="asm-ocr2", OWNER="grid", GROUP="asmadmin", MODE="0660"
#3 /dev/sdf=2147MB
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB20195d97-6d2ad51a", NAME="asm-ocr3", OWNER="grid", GROUP="asmadmin", MODE="0660"
#1 /dev/sdg=10.7GB
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB24c920ba-9eb72480", NAME="asm-data1", OWNER="grid", GROUP="asmadmin", MODE="0660"
#2 /dev/sdh=10.7GB
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id i --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB66f47205-cf20c312", NAME="asm-data2", OWNER="grid", GROUP="asmadmin", MODE="0660"