【指令碼】UNIX平臺orainstRoot.sh指令碼作用
我們在使用 Universal Installer(OUI)在UNIX平臺上安裝Oracle軟體的快結束的時候會提示我們要執行orainstRoot.sh指令碼。執行這個目的是什麼呢?以Linux平臺的版本Oracle為例我們一起探索一下。[@more@]
1.orainstRoot.sh指令碼內容
[root@secdb ~]# ls -l /oracle/oraInventory/orainstRoot.sh
-rwxrwx--- 1 oracle oinstall 1614 Dec 21 2010 /oracle/oraInventory/orainstRoot.sh
[root@secdb ~]# cat /oracle/oraInventory/orainstRoot.sh
#!/bin/sh
AWK=/bin/awk
CHMOD=/bin/chmod
CHGRP=/bin/chgrp
CP=/bin/cp
ECHO=/bin/echo
MKDIR=/bin/mkdir
RUID=`/usr/bin/id|$AWK -F( '{print $2}'|$AWK -F) '{print $1}'`
if [ ${RUID} != "root" ];then
$ECHO "This script. must be executed as root"
exit 1
fi
if [ -d "/etc" ]; then
$CHMOD 755 /etc;
else
$MKDIR -p /etc;
fi
if [ -f "/oracle/oraInventory/oraInst.loc" ]; then
$CP /oracle/oraInventory/oraInst.loc /etc/oraInst.loc;
$CHMOD 644 /etc/oraInst.loc
else
INVPTR=/etc/oraInst.loc
INVLOC=/oracle/oraInventory
GRP=oinstall
PTRDIR="`dirname $INVPTR`";
# Create the software inventory location pointer file
if [ ! -d "$PTRDIR" ]; then
$MKDIR -p $PTRDIR;
fi
$ECHO "Creating the Oracle inventory pointer file ($INVPTR)";
$ECHO inventory_loc=$INVLOC > $INVPTR
$ECHO inst_group=$GRP >> $INVPTR
chmod 644 $INVPTR
# Create the inventory directory if it doesn't exist
if [ ! -d "$INVLOC" ];then
$ECHO "Creating the Oracle inventory directory ($INVLOC)";
$MKDIR -p $INVLOC;
fi
fi
$ECHO "Changing permissions of /oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
";
$CHMOD -R g+rw,o-rwx /oracle/oraInventory;
if [ $? != 0 ]; then
$ECHO "OUI-35086:WARNING: chmod of /oracle/oraInventory
Adding read,write permissions for group.
,Removing read,write,execute permissions for world.
failed!";
fi
$ECHO "Changing groupname of /oracle/oraInventory to oinstall.";
$CHGRP -R oinstall /oracle/oraInventory;
if [ $? != 0 ]; then
$ECHO "OUI-10057:WARNING: chgrp of /oracle/oraInventory to oinstall failed!";
fi
$ECHO "The execution of the script. is complete."
從註釋上可以得出指令碼的功能描述。
# Create the software inventory location pointer file
# Create the inventory directory if it doesn't exist
因此orainstRoot.sh指令碼作用就是建立Oracle軟體清單的指向檔案。
2.指向檔案內容
[root@secdb ~]# cat /etc/oraInst.loc
inventory_loc=/oracle/oraInventory
inst_group=oinstall
此檔案給出了Oracle軟體安裝清單目錄和屬組的名字。
3.小結
10g版本的orainstRoot.sh指令碼相對於早期版本來講,編寫方法有所改進,靈活性也增加了很多。這裡建議大家在探索Oracle世界的時候密切關注一切細節,往往從這些細節中我們會有很多意想不到的收穫,例如這裡提到的指令碼編寫技巧就值得我們體會。
1.orainstRoot.sh指令碼內容
[root@secdb ~]# ls -l /oracle/oraInventory/orainstRoot.sh
-rwxrwx--- 1 oracle oinstall 1614 Dec 21 2010 /oracle/oraInventory/orainstRoot.sh
[root@secdb ~]# cat /oracle/oraInventory/orainstRoot.sh
#!/bin/sh
AWK=/bin/awk
CHMOD=/bin/chmod
CHGRP=/bin/chgrp
CP=/bin/cp
ECHO=/bin/echo
MKDIR=/bin/mkdir
RUID=`/usr/bin/id|$AWK -F( '{print $2}'|$AWK -F) '{print $1}'`
if [ ${RUID} != "root" ];then
$ECHO "This script. must be executed as root"
exit 1
fi
if [ -d "/etc" ]; then
$CHMOD 755 /etc;
else
$MKDIR -p /etc;
fi
if [ -f "/oracle/oraInventory/oraInst.loc" ]; then
$CP /oracle/oraInventory/oraInst.loc /etc/oraInst.loc;
$CHMOD 644 /etc/oraInst.loc
else
INVPTR=/etc/oraInst.loc
INVLOC=/oracle/oraInventory
GRP=oinstall
PTRDIR="`dirname $INVPTR`";
# Create the software inventory location pointer file
if [ ! -d "$PTRDIR" ]; then
$MKDIR -p $PTRDIR;
fi
$ECHO "Creating the Oracle inventory pointer file ($INVPTR)";
$ECHO inventory_loc=$INVLOC > $INVPTR
$ECHO inst_group=$GRP >> $INVPTR
chmod 644 $INVPTR
# Create the inventory directory if it doesn't exist
if [ ! -d "$INVLOC" ];then
$ECHO "Creating the Oracle inventory directory ($INVLOC)";
$MKDIR -p $INVLOC;
fi
fi
$ECHO "Changing permissions of /oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
";
$CHMOD -R g+rw,o-rwx /oracle/oraInventory;
if [ $? != 0 ]; then
$ECHO "OUI-35086:WARNING: chmod of /oracle/oraInventory
Adding read,write permissions for group.
,Removing read,write,execute permissions for world.
failed!";
fi
$ECHO "Changing groupname of /oracle/oraInventory to oinstall.";
$CHGRP -R oinstall /oracle/oraInventory;
if [ $? != 0 ]; then
$ECHO "OUI-10057:WARNING: chgrp of /oracle/oraInventory to oinstall failed!";
fi
$ECHO "The execution of the script. is complete."
從註釋上可以得出指令碼的功能描述。
# Create the software inventory location pointer file
# Create the inventory directory if it doesn't exist
因此orainstRoot.sh指令碼作用就是建立Oracle軟體清單的指向檔案。
2.指向檔案內容
[root@secdb ~]# cat /etc/oraInst.loc
inventory_loc=/oracle/oraInventory
inst_group=oinstall
此檔案給出了Oracle軟體安裝清單目錄和屬組的名字。
3.小結
10g版本的orainstRoot.sh指令碼相對於早期版本來講,編寫方法有所改進,靈活性也增加了很多。這裡建議大家在探索Oracle世界的時候密切關注一切細節,往往從這些細節中我們會有很多意想不到的收穫,例如這裡提到的指令碼編寫技巧就值得我們體會。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22661144/viewspace-1058084/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- windows和unix平臺下Oracle冷備份指令碼WindowsOracle指令碼
- Unix/Linux 指令碼中 “set -e” 的作用Linux指令碼
- Linux/Unix shell 指令碼中呼叫SQL,RMAN指令碼Linux指令碼SQL
- 使用agentDownload指令碼在Unix/Linux平臺安裝Management Agent指令碼Linux
- LNMP+FastCGI平臺搭建指令碼LNMPAST指令碼
- UNIX下oracle啟動指令碼Oracle指令碼
- 平臺設計中的指令碼管理指令碼
- 理解 Linux/Unix 登入指令碼Linux指令碼
- UNIX crontab自動執行指令碼指令碼
- 轉貼:RMAN備份指令碼(Unix)指令碼
- 在Hadoop平臺跑python指令碼HadoopPython指令碼
- ffmpeg iOS平臺編譯 指令碼註釋iOS編譯指令碼
- unix、linux oracle rman匯出指令碼LinuxOracle指令碼
- linux shell指令碼中 =~ 的作用Linux指令碼
- 指令碼後臺執行指令碼
- 庫物件指令碼抽取指令碼物件指令碼
- 理解 Linux/Unix 登入指令碼的技巧Linux指令碼
- linux_unix_script_生成ping指令碼Linux指令碼
- Oracle Windows平臺自動排程備份指令碼OracleWindows指令碼
- 巧用shell指令碼生成快捷指令碼指令碼
- 生成insert指令碼的指令碼指令碼
- 後臺跑指令碼替代crontab指令碼
- UNIX環境設定監聽埠的指令碼指令碼
- Unix shell解決實際問題指令碼(1)指令碼
- Unix shell解決實際問題指令碼(2)指令碼
- Unix shell解決實際問題指令碼(3)指令碼
- unix下幾個有用的小shell指令碼(轉)指令碼
- 使用agentDownload指令碼在Windows平臺安裝Management Agent指令碼Windows
- 密碼指令碼密碼指令碼
- [指令碼例項]——統計系統資訊指令碼指令碼
- 前端js指令碼與防止js指令碼前端JS指令碼
- python指令碼後臺執行Python指令碼
- Linux/Unix shell 引數傳遞到SQL指令碼LinuxSQL指令碼
- UNIX系統高負載郵件報警指令碼負載指令碼
- trac 平臺從 PG 資料庫轉到sqlite 的指令碼。資料庫SQLite指令碼
- iOS逆向 Shell指令碼+指令碼重簽名iOS指令碼
- 常用指令碼學習手冊——Bat指令碼指令碼BAT
- Shell指令碼匯入外部指令碼內容指令碼