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封裝函式
- [20210618]記錄bash shell執行的命令.txt
- C#使用程式呼叫bash,不斷往bash內插入命令並執行C#
- Linux之export命令LinuxExport
- PHP命令執行與繞過PHP
- bash shell多執行緒方案執行緒
- 『忘了再學』Shell基礎 — 7、Bash基本功能(多命令順序執行)
- ES6:export 與 export default 區別Export
- JavaScript ES6中,export與export defaultJavaScriptExport
- 執行shell指令碼報錯:-bash: ./test1.sh: /bin/bash^M: ...指令碼
- 關於命令執行與反序列化
- linux後臺執行命令:&與nohup的用法Linux
- Docker執行命令Docker
- 命令執行漏洞
- source 和export 命令的區別Export
- 使用 Bash 自動執行復雜任務
- D7 kubernetes 容器執行命令與引數
- -bash: brctl:未找到命令
- -bash: wget: 未找到命令wget
- -bash: ifconfig: 未找到命令
- Docker命令-docker exec-在執行的容器中執行命令Docker
- .net執行cmd命令
- Java執行cmd命令Java
- 收集 Linux 命令列執行的命令Linux命令列
- [20231023]生成bbed的執行指令碼(bash shell).txt指令碼
- 通過 babel-node 執行 ES6 import/export 語法BabelImportExport
- ES6 模組語法——export 命令Export
- python裡執行shell命令或cmd命令Python
- 【Mongo】shell命令列模式執行mongo命令Go命令列模式
- linux執行環境&命令Linux
- PHP命令執行集錦PHP
- Linux 後臺執行命令Linux
- 監控 redis 執行命令Redis
- 跟蹤執行命令T
- 生成 Linux 執行時間報告的 Bash 指令碼Linux指令碼
- shell指令碼命令 執行python檔案&python命令列執行python程式碼指令碼Python命令列
- Golang 使用執行命令帶管道符執行的方法Golang
- 用 PHP 來執行執行網路相關命令PHP
- Linux基礎命令---間歇執行命令watchLinux