SUNOS export命令執行與bash
今天,一小弟去巡檢ORACLE資料庫,出現了點小插曲,情況是:一臺伺服器上有2個oracle資料庫例項,均是10.2.0.1的,ORACLE_SID分別是APP、etos。
作業系統使用者oracle的預設環境變數配置ORACLE_SID是etos,從root切換到oracle時,以sqlplus / as sysdba預設登入到etos例項,且etos資料庫的巡檢也很順利,
但是,到巡檢APP時,那小弟傻了,登入不進去,使用export ORACLE_SID=APP指定ORACLE_SID時,系統無法執行export命令,報錯如下:
然後,那小弟打電話向我求助,對於這種情況,總有點有家不能回,進家無門的感覺,讓人哭笑不得。
我的做法是,首先確定作業系統型別:
$uname -a
SunOS kdswapdb01 5.10 Generic_127111-06 sun4u sparc SUNW,Sun-Fire-V890
然後,檢視oracle家目錄下.profile的環境變數設定是如何宣告的:
$ vi .profile
".profile" 12 lines, 491 characters
# This is the default standard profile provided to a user.
# They are expected to edit it to meet their own needs.
MAIL=/usr/mail/${LOGNAME:?}
ORACLE_BASE=/u01/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.0.2
ORACLE_SID=etos
NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280
PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/ccs/bin:/usr/local/bin
BRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/usr/local/lib:/usr/lib
TMPDIR=/var/tmp
export ORALCE_BASE ORACLE_HOME ORACLE_SID NLS_LANG PATH LD_LIBRARY_PATH
明確SUNOS的使用者環境變數宣告是使用export的,然而當前export命令不能執行,SUNOS還有一種環境變數宣告方式即setenv,嘗試setenv ORACLE_SID=APP:
當前SUNOS不支援setenv,這時結合linux作業系統進行對比,可能沒有執行bash,切換至bash環境下嘗試:
$ bash
bash-3.00$
bash-3.00$ export ORACLE_SID=APP
bash-3.00$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 21 20:49:01 2016
Copyright (c) 1982, 2005, Oracle. All rights reserved.
而solaris的預設shell是Bourne shell,名為/bin/sh。 所以,操作SUNOS時,最好首先執行bash,讓當前環境切換至bash狀態。
作業系統使用者oracle的預設環境變數配置ORACLE_SID是etos,從root切換到oracle時,以sqlplus / as sysdba預設登入到etos例項,且etos資料庫的巡檢也很順利,
但是,到巡檢APP時,那小弟傻了,登入不進去,使用export ORACLE_SID=APP指定ORACLE_SID時,系統無法執行export命令,報錯如下:
然後,那小弟打電話向我求助,對於這種情況,總有點有家不能回,進家無門的感覺,讓人哭笑不得。
我的做法是,首先確定作業系統型別:
$uname -a
SunOS kdswapdb01 5.10 Generic_127111-06 sun4u sparc SUNW,Sun-Fire-V890
然後,檢視oracle家目錄下.profile的環境變數設定是如何宣告的:
$ vi .profile
".profile" 12 lines, 491 characters
# This is the default standard profile provided to a user.
# They are expected to edit it to meet their own needs.
MAIL=/usr/mail/${LOGNAME:?}
ORACLE_BASE=/u01/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.0.2
ORACLE_SID=etos
NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280
PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/ccs/bin:/usr/local/bin
BRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/usr/local/lib:/usr/lib
TMPDIR=/var/tmp
export ORALCE_BASE ORACLE_HOME ORACLE_SID NLS_LANG PATH LD_LIBRARY_PATH
明確SUNOS的使用者環境變數宣告是使用export的,然而當前export命令不能執行,SUNOS還有一種環境變數宣告方式即setenv,嘗試setenv ORACLE_SID=APP:
當前SUNOS不支援setenv,這時結合linux作業系統進行對比,可能沒有執行bash,切換至bash環境下嘗試:
$ bash
bash-3.00$
bash-3.00$ export ORACLE_SID=APP
bash-3.00$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 21 20:49:01 2016
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL>
問題解決,這裡不得不提LINUX和SUNOS的一點不同:shell,兩個作業系統的預設shell雖然都是/bin/sh,但linux預設shell是bash,/bin/sh僅是一個指向到/bin/bash的符號連結,而solaris的預設shell是Bourne shell,名為/bin/sh。 所以,操作SUNOS時,最好首先執行bash,讓當前環境切換至bash狀態。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2122374/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- golang封裝一個bash函式,用於執行bash命令Golang封裝函式
- C#使用程式呼叫bash,不斷往bash內插入命令並執行C#
- 使用NetCat或BASH建立反向Shell來執行遠端執行Root命令
- 在window上執行bash
- SunOS 操作命令及linux區別整理Linux
- Linux Shell執行source或.命令報錯'bash: ..: command not found'Linux
- Linux export 命令LinuxExport
- 命令執行順序控制與管道
- bash如何處執行啟動檔案 --節選自 man bash
- [20210618]記錄bash shell執行的命令.txt
- 如何在 Linux 上執行命令前臨時清空 Bash 環境變數Linux變數
- Linux之export命令LinuxExport
- Bash: export - 設定或顯示環境變數Export變數
- jar命令打包與java執行jar包JARJava
- bash shell指令碼執行方法總結指令碼
- 執行shell指令碼報錯:-bash: ./test1.sh: /bin/bash^M: ...指令碼
- 『忘了再學』Shell基礎 — 7、Bash基本功能(多命令順序執行)
- 關於命令執行與反序列化
- 命令執行漏洞
- ES6:export 與 export default 區別Export
- JavaScript ES6中,export與export defaultJavaScriptExport
- TortoiseSVN 命令 (命令列執行工具)命令列
- Git Bash關鍵命令Git
- linux後臺執行命令:&與nohup的用法Linux
- source 和export 命令的區別Export
- Docker命令-docker exec-在執行的容器中執行命令Docker
- Java執行cmd命令Java
- 遠端執行命令
- 命令列執行Nunit命令列
- 如何執行maven和執行maven的命令。Maven
- statistics的export與import!ExportImport
- shell簡介入門bash程式設計之執行(轉)程式設計
- 檢視UNIX的版本資訊,硬體狀況,Solaris與Sunos
- -bash: wget: 未找到命令wget
- Bash 指令碼 set 命令教程指令碼
- 通過 babel-node 執行 ES6 import/export 語法BabelImportExport
- ES6 模組語法——export 命令Export
- 執行緒、執行緒與程式、ULT與KLT執行緒