修改与调试终于以跳板机的方式实现LInux系统 oracle数据库安装前各项参数脚本话一键自动配置,包含单向互信的添加与删除,asm磁盘对的绑定和limits和sysctl.conf,grid和oracle用户等等的添加及配置。

oracle_envset_v1\oracle_install

首先,注意信息readme.txt:
# "==============请提前配置好以下文件=================="
#+--------------------------------------------------------------------------+
#| 说明:推荐放到放到任一节点/tmp下,输入需要部署oracle的IP |
#| 地址,按指令操作即可完成配置 |
#| 1./grid 和/oracle文件系统 |
#| 2.配置config/hosts |
#| 3.添加需要asm的磁盘config/disk.txt |
#| 4.默认按照512G内存配置的,不满足的话修改oracle_install.sh |
#| 5.配置完成确认无误后可以上传包进行安装了 |
#+--------------------------------------------------------------------------+
#EOF
#20200924 V0
#使用方式
#cd /tmp/oracle_install
#chmod +x *
#sh main.exe 根据选项执行即可
#可以先配置root单向互信,环境部署完成后删除互信.否则中间需要多次输入密码
#注意事项 ora_preinstall.sh
#vm.min_free_kbytes=20971520 #给系统保留20G内存,内存条件达不到的话根据实际修改或注释掉,否则会起不来
#未对hosts和12-dm-permissions.rules文件还原,如想还原,可手动还原
#mv /etc/{hosts.#winston20200923,hosts}
#mv /etc/udev/rules.d/{12-dm-permissions.rules.#winston20200923,12-dm-permissions.rules}
#另外,本脚本只备份第一次存在的文件,后面修改的不会再备份,如果需要,请手动备份
#!/usr/bin/env bash sc_dir=`pwd` config_dir=$sc_dir/config dm_rules=12-dm-permissions.rules asm_rule=/etc/udev/rules.d/$dm_rules #新参数配置的识别号 username=#winston20200923 #加载函数和变量 #. $sc_dir/ora_preinstall.sh #. $sc_dir/rollback_env.sh #执行 #if [ `id -u` -ne 0 ];then #cat <<-EOF #+--------------------------------------------------------------+ #| | #| current not root,please use root | #| | #+--------------------------------------------------------------+ #EOF # exit 1 #fi i=1 #oracle环境配置 remote_set_env(){ while [ $i -le 5 ] do # read -p "Please enter IP & ora_version & oracle_sid & grid_sid[192.168.0.66 db19c pengdb1 +ASM1]: " IP ora_version oracle_sid grid_sid #if [ ${#IP} -ne 0 -a ${#ora_version} -ne 0 -a ${#oracle_sid} -ne 0 -a ${#grid_sid} -ne 0 ];then unset IP echo -en "\e[1;32minput IP: \e[0m" #n表示不换行 read IP echo "$IP"| egrep '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' &>/dev/null if [ $? -eq 0 ];then clear printf " infomation: --------------------------- IP : $IP --------------------------- " else clear echo "不满足条件,Please again input" continue fi read -p "Are you sure?[y/n]: " action if [ "$action" = "y" ];then scp -rpq $config_dir/ora_preinstall.sh root@$IP:/tmp scp -rpq $config_dir/hosts root@$IP:/etc asm_grid scp -rpq $config_dir/$dm_rules root@$IP:$asm_rule ssh root@$IP 'export TERM=xterm;. .bash_profile;sh /tmp/ora_preinstall.sh' break else break fi let i++ done } locate_set_env(){ while : do read -p "Are you sure?[y/n]: " action if [ "$action" = "y" ];then cp -rp $config_dir/hosts /etc asm_grid sh $config_dir/ora_preinstall.sh sleep 3 break else break fi done } #操作系统环境还原 rollback_env(){ while [ $i -le 5 ] do unset IP echo -en "\e[1;32minput IP: \e[0m" #n表示不换行 read IP echo "$IP"| egrep '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' &>/dev/null if [ $? -eq 0 ];then clear printf " infomation: --------------------------- IP : $IP --------------------------- " else clear echo "不满足条件,Please again input" break fi read -p "Are you sure?[y/n]: " action if [ "$action" = "y" ];then scp -rpq $config_dir/rollback_env.sh root@$IP:/tmp ssh root@$IP 'export TERM=xterm;. .bash_profile;sh /tmp/rollback_env.sh' echo "环境已还原完成!!!" echo " #+------------ ASM磁盘请使用如下格式清理------------------------+ #| sample | #| dd if=/dev/zero of=/dev/sdb bs=4096 count=10 | #+--------------------------------------------------------------+ " break else break fi let i++ done } #绑定asm相关磁盘 for_disk(){ >$config_dir/$dm_rules for disk in `cat $config_dir/disk.txt` do echo "ENV{DM_NAME}==\"$disk\", OWNER:=\"grid\", GROUP:=\"asmadmin\", MODE:=\"660\"">>$config_dir/$dm_rules done } asm_grid(){ if [ -f $asm_rule ];then cp -np $asm_rule $asm_rule.$username >$asm_rule for_disk else for_disk fi } #单向互信配置 add_key(){ #判断公钥文件是否存在,不存在就创建,P""密码为空 user=root if [ ! -f /${user}/.ssh/id_rsa ];then ssh-keygen -P "" -f ~root/.ssh/id_rsa fi while : do unset IP echo -en "\e[1;32minput IP: \e[0m" #n表示不换行 read IP echo "$IP"| egrep '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' &>/dev/null if [ $? -eq 0 ];then clear printf " infomation: --------------------------- IP : $IP --------------------------- " else echo "$IP 不满足条件,Please again input" sleep 2 break fi read -p "Are you sure?[y/n]: " action if [ "$action" = "y" ];then ping -c1 -W2 $IP &>/dev/null if [ $? -eq 0 ];then /usr/bin/ssh-copy-id $IP echo "单向互信已配置完成" else echo "$IP 不通请检查!!!" fi sleep 3 break else break fi done } del_key(){ #判断公钥文件是否存在,不存在就创建,P""密码为空 user=/root while : do unset IP echo -en "\e[1;32minput IP: \e[0m" #n表示不换行 read IP echo "$IP"| egrep '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' &>/dev/null if [ $? -eq 0 ];then clear printf " infomation: --------------------------- IP : $IP --------------------------- " else echo "$IP 不满足条件,Please again input" sleep 2 break fi read -p "Are you sure?[y/n]: " action if [ "$action" = "y" ];then ping -c1 -W2 $IP &>/dev/null if [ $? -eq 0 ];then ssh $IP 'rm -rf ~root/.ssh/authorized_keys' #rm -rf ${user}/.ssh/* &>/dev/null echo "单向互信已删除完成" else echo "$IP 不通请检查!!!" fi sleep 3 break else break fi done } trap "" HUP INT QUIT TSTP #捕捉到信号后什么都不做,不退出脚本,除非退出终端 while : do #构建显示格式 clear cat <<-EOF # "==============请提前配置好以下文件==================" #+--------------------------------------------------------------------------+ #| 说明:推荐放到放到任一节点/tmp下,输入需要部署oracle的IP | #| 地址,按指令操作即可完成配置 | #| 1./grid 和/oracle文件系统 | #| 2.配置config/hosts | #| 3.添加需要asm的磁盘config/disk.txt | #| 4.默认按照512G内存配置的,不满足的话修改oracle_install.sh | #| 5.配置完成确认无误后可以上传包进行安装了 | #| 6.更多帮助请看readme.txt | #+--------------------------------------------------------------------------+ #EOF +----------------------------------+ | 选择需要操作项 | | 1.oracle(远程)安装环境配置 | | 2.oracle(本地)安装环境配置 | | 3.系统环境还原 | | 4.单向互信建立 | | 5.单向互信删除 | | 6.退出 | +----------------------------------+ EOF #打印绿颜色的字体 echo -en "\e[1;32minput number: \e[0m" #n表示不换行 read num case "$num" in 1) remote_set_env sleep 3 ;; 2) locate_set_env sleep 3 ;; 3) rollback_env sleep 3 ;; 4) add_key ;; 5) del_key ;; 6) exit ;; "") ;; #其它输入无操作 *) echo "error" esac done |
结束语:
有一种活力叫互联网;
有一种奋斗叫996;
有一种永远不需要睡觉的孪生工作,叫做码代码和码字。

