shell脚本案例:RAC多路径-配置ASM磁盘装备权限

打印 上一主题 下一主题

主题 1591|帖子 1591|积分 4773

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
利用场景

在RAC多路径配置完成后,必要更改ASM磁盘装备的权限。这个步骤紧张分为获取ASM逻辑装备的dm_uuid、配置/etc/udev/rules.d/99-oracle-asmdevices.rules文件、重新加载udev策略并激活策略。这个过程手动去做耗时耗力易出错,所以针对这个情况专门写了个脚本。
Linux版本


脚本代码

  1. #!/bin/bash
  2. RED='\033[0;31m'
  3. GREEN='\033[0;32m'
  4. NOCOLOR='\033[0m'
  5. #配置前的asm设备权限
  6. echo "配置前的asm设备权限"
  7. printf "$RED%s %s\n" "`ls -lsa /dev/dm*`"
  8. echo "                            "
  9. #组的创建
  10. echo -e  "\e[32m************************ \e[0m"
  11. echo -e  "\e[32m组信息\e[0m"
  12. echo -e  "\e[32m************************ \e[0m"
  13. group=(oinstall dba oper asmadmin asmdba asmoper)
  14. for i in "${group[@]}"
  15. do
  16. grep "^$i" /etc/group >& /dev/null
  17.   if [ $? != 0 ];
  18.          then
  19.                  if [ $i = "oinstall" ];
  20.                         then  groupadd -g 5001 oinstall; echo "oinstal组已添加"
  21.                  elif [ $i = "dba" ];
  22.                         then groupadd -g 5002 dba; echo "dba组已添加"
  23.                  elif [ $i = "oper" ];
  24.                         then groupadd -g 5003 oper; echo "oper组已添加"
  25.                  elif [ $i = "asmadmin" ];
  26.                         then groupadd -g 5004 asmadmin; echo "asmadmin组已添加"
  27.                  elif [ $i = "asmoper" ];
  28.                         then groupadd -g 5005 asmoper; echo "asmoper组已添加"
  29.                  elif [ $i = "asmdba" ];
  30.                         then groupadd -g 5006 asmdba; echo "asmdba组已添加"
  31.                  fi
  32.           else
  33.               echo "$i组已存在"
  34.         fi
  35. done
  36. #用户的创建
  37. echo -e  "\e[32m************************ \e[0m"
  38. echo -e  "\e[32m用户信息\e[0m"
  39. echo -e  "\e[32m************************ \e[0m"
  40. user=(grid oracle)
  41. for i in "${user[@]}"
  42. do
  43.   grep "^$i" /etc/passwd >& /dev/null
  44.   if [ $? != 0 ];
  45.     then
  46.             if [ $i = grid ]
  47.                   then useradd -u 6002 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid ;  echo grid | passwd --stdin grid ; echo "grid用户已添加"
  48.                 elif  [ $i = oracle ]
  49.                   then useradd -u 6001 -g oinstall -G dba,asmdba,oper oracle; echo oracle | passwd --stdin oracle; echo "oracle用户已添加"
  50.                 fi
  51.         else
  52.                 echo "$i用户已存在"
  53.   fi
  54. done
  55. #提前清空规则配置文件
  56. echo '' > /etc/udev/rules.d/99-oracle-asmdevices.rules
  57. #配置asm设备规则文件
  58. for i in `dmsetup ls |grep asm |awk '{print $1}'`
  59. do
  60.    for v in `udevadm info --query=all --name=/dev/mapper/$i |grep -i dm_uuid |awk -F"=" '{print $2}'`
  61.    do
  62.     echo KERNEL=="dm-*",ENV{DM_UUID}=="$v",OWNER="grid",GROUP="asmadmin",MODE="0060" >> /etc/udev/rules.d/temp.rules
  63.    done
  64. done
  65. #清除文件中的空白行
  66. awk NF /etc/udev/rules.d/temp.rules > /etc/udev/rules.d/99-oracle-asmdevices.rules
  67. #删除临时文件
  68. rm -rf /etc/udev/rules.d/temp.rules
  69. #重载激活规则文件
  70. echo "                            "
  71. echo -e  "\e[32m重载配置文件\e[0m"
  72. /sbin/udevadm control --reload-rules
  73. echo "                            "
  74. echo -e  "\e[32m激活配置文件\e[0m"
  75. /sbin/udevadm trigger --type=devices --action=change
  76. echo "                            "
  77. sleep 5
  78. #配置后的设备权限
  79. echo "配置后的设备权限"
  80. printf "$GREEN%s %s\n" "`ls -lsa /dev/dm*`"
  81. printf "$NOCOLOR%s %s\n" "*************任务完成**************"
复制代码
实验效果



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表