linux命令exp Linux命令行與shell腳本編程大全

請(qǐng)問(wèn)linux系統(tǒng)其他系統(tǒng)用戶使用exp命令是否可行?

不同的用戶權(quán)限是不一樣的。你建的這些賬戶屬于哪個(gè)group?要和oracle同組。而且從錯(cuò)誤上看,一些參數(shù)配置也可能有錯(cuò)誤。看看和oracle賬戶對(duì)比,有哪些需要修改。

在涇縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷(xiāo)型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè),涇縣網(wǎng)站建設(shè)費(fèi)用合理。

Linux操作系統(tǒng)中expect如何使用?

在Linux系統(tǒng)中,expect是一個(gè)自動(dòng)化交互套件,也是一個(gè)用來(lái)處理交互的命令;利用expect,我們可以將交互過(guò)程寫(xiě)在一個(gè)腳本上,讓其自動(dòng)化完成,從而幫助運(yùn)維人員提高工作效率、節(jié)約時(shí)間。那么Linux系統(tǒng)中expect該如何使用?我們來(lái)看看詳細(xì)的內(nèi)容介紹。

Linux系統(tǒng)中expect該如何使用?

expect是一個(gè)自動(dòng)化交互套件,主要應(yīng)用于執(zhí)行命令和程序時(shí),系統(tǒng)以交互形式要求輸入指定字符串,實(shí)現(xiàn)交互通信。

expect自動(dòng)交互流程:

spawn啟動(dòng)指定進(jìn)程--expect獲取指定關(guān)鍵字--send向指定程序發(fā)送指定字符--執(zhí)行完成退出。

注意:該腳本能夠執(zhí)行的前提條件是安裝了expect

yum install -y expect

expect常用命令總結(jié):

spawn 交互程序開(kāi)始后面跟命令或者指定程序;

expect 獲取匹配信息匹配成功則執(zhí)行expect后面的程序動(dòng)作;

send exp_send 用于發(fā)送指定的字符串信息;

exp_continue 在expect中多次匹配就需要用到;

exit 退出expect腳本;

eof expect 執(zhí)行結(jié)束 退出;

set 定義變量;

puts 輸出變量;

set timeout 設(shè)置超時(shí)時(shí)間。

linux系統(tǒng)中oracle數(shù)據(jù)庫(kù)exp命令提示錯(cuò)誤-bash: exp: command not found

oracle安裝不全,這個(gè)命令在:/opt/oracle/product/10.2.0/db_1/bin目錄下,確認(rèn)一下exp文件是否存在。

概述

簡(jiǎn)單地說(shuō),Linux是一套免費(fèi)使用和自由傳播的類(lèi)Unix操作系統(tǒng),它主要用于基于Intel x86系列CPU的計(jì)算機(jī)上。這個(gè)系統(tǒng)是由世界各地的成千上萬(wàn)的程序員設(shè)計(jì)和實(shí)現(xiàn)的。其目的是建立不受任何商品化軟件的版權(quán)制約的、全世界都能自由使用的 Unix兼容產(chǎn)品。

Linux的出現(xiàn),最早開(kāi)始于一位名叫Linus Torvalds的計(jì)算機(jī)業(yè)余愛(ài)好者,當(dāng)時(shí)他是芬蘭赫爾辛基大學(xué)的學(xué)生。他的目的是想設(shè)計(jì)一個(gè)代替Minix(是由一位名叫Andrew Tannebaum的計(jì)算機(jī)教授編寫(xiě)的一個(gè)操作系統(tǒng)示教程序)的操作系統(tǒng),這個(gè)操作系統(tǒng)可用于386、486或奔騰處理器的個(gè)人計(jì)算機(jī)上,并且具有 Unix操作系統(tǒng)的全部功能,因而開(kāi)始了Linux雛形的設(shè)計(jì)。

絕大多數(shù)基于Linux內(nèi)核的的操作系統(tǒng)使用了大量的GNU軟件,包括了shell程序、工具、程序庫(kù)、編譯器及工具,還有許多其他程序,例如Emacs。正因?yàn)槿绱耍珿NU計(jì)劃的開(kāi)創(chuàng)者理查德·馬修·斯托曼博士提議將Linux操作系統(tǒng)改名為GNU/Linux。但有些人只把操作系統(tǒng)叫做"Linux"。

Linux的基本思想有兩點(diǎn):第一,一切都是文件;第二,每個(gè)軟件都有確定的用途,同時(shí)它們都盡可能被編寫(xiě)得更好。其中第一條詳細(xì)來(lái)講就是系統(tǒng)中的所有都?xì)w結(jié)為一個(gè)文件,包括命令、硬件和軟件設(shè)備、操作系統(tǒng)、進(jìn)程等等對(duì)于操作系統(tǒng)內(nèi)核而言,都被視為擁有各自特性或類(lèi)型的文件。至于說(shuō)Linux是基于Unix的,很大程度上也是因?yàn)檫@兩者的基本思想十分相近。

如何從linux導(dǎo)出oracle數(shù)據(jù)表

用exp命令,具體用法:

1. 獲取幫助

exp help=y

2. 導(dǎo)出一個(gè)完整數(shù)據(jù)庫(kù)

exp system/manager file=bible_db log=dible_db full=y

3. 導(dǎo)出數(shù)據(jù)庫(kù)定義而不導(dǎo)出數(shù)據(jù)

exp system/manager file=bible_db log=dible_db full=y rows=n

4. 導(dǎo)出一個(gè)或一組指定用戶所屬的全部表、索引和其他對(duì)象

exp system/manager file=seapark log=seapark owner=seapark

exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)

注意:在導(dǎo)出用戶時(shí),盡管已經(jīng)得到了這個(gè)用戶的所有對(duì)象,但是還是不能得到這些對(duì)象引用的任何同義詞。解決方法是用以下的SQL*Plus命令創(chuàng)建一個(gè)腳本文件,運(yùn)行這個(gè)腳本文件可以獲得一個(gè)重建seapark所屬對(duì)象的全部公共同義詞的可執(zhí)行腳本,然后在目標(biāo)數(shù)據(jù)庫(kù)上運(yùn)行該腳本就可重建同義詞了。

SET LINESIZE 132

SET PAGESIZE 0

SET TRIMSPOOL ON

SPOOL c:\seapark.syn

SELECT 'Create public synonym '||synonym_name

||' for '||table_owner||'.'||table_name||';'

FROM dba_synonyms

WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';

SPOOL OFF

5. 導(dǎo)出一個(gè)或多個(gè)指定表

exp seapark/seapark file=tank log=tank tables=tank

exp system/manager file=tank log=tank tables=seapark.tank

exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)

6. 估計(jì)導(dǎo)出文件的大小

全部表總字節(jié)數(shù):

SELECT sum(bytes)

FROM dba_segments

WHERE segment_type = 'TABLE';

seapark用戶所屬表的總字節(jié)數(shù):

SELECT sum(bytes)

FROM dba_segments

WHERE owner = 'SEAPARK'

AND segment_type = 'TABLE';

seapark用戶下的aquatic_animal表的字節(jié)數(shù):

SELECT sum(bytes)

FROM dba_segments

WHERE owner = 'SEAPARK'

AND segment_type = 'TABLE'

AND segment_name = 'AQUATIC_ANIMAL';

7. 導(dǎo)出表數(shù)據(jù)的子集(oracle8i以上)

NT系統(tǒng):

exp system/manager query='Where salad_type='FRUIT'' tables=amy.salad_type

file=fruit log=fruit

UNIX系統(tǒng):

exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amy.salad_type

file=fruit log=fruit

8. 用多個(gè)文件分割一個(gè)導(dǎo)出文件

exp system/manager

file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)

log=paycheck, filesize=1G tables=hr.paycheck

9. 使用參數(shù)文件

exp system/manager parfile=bible_tables.par

bible_tables.par參數(shù)文件:

#Export the sample tables used for the Oracle8i Database Administrator's Bible.

file=bible_tables

log=bible_tables

tables=(

amy.artist

amy.books

seapark.checkup

seapark.items

)

10. 增量導(dǎo)出

“完全”增量導(dǎo)出(complete),即備份整個(gè)數(shù)據(jù)庫(kù)

exp system/manager inctype=complete file=990702.dmp

“增量型”增量導(dǎo)出(incremental),即備份上一次備份后改變的數(shù)據(jù)

exp system/manager inctype=incremental file=990702.dmp

“累計(jì)型”增量導(dǎo)出(cumulative),即備份上一次“完全”導(dǎo)出之后改變的數(shù)據(jù)

exp system/manager inctype=cumulative file=990702.dmp

Linux expect

expect:expect是Unix系統(tǒng)中用來(lái)進(jìn)行自動(dòng)化控制和測(cè)試的腳本工具,常用于實(shí)現(xiàn)交互式任務(wù)的自動(dòng)化。使用命令”dnf install expect -y”進(jìn)行安裝。腳本文件聲明為”#!/usr/bin/expect”。

expect常用命令如下:

1.spawn+交互命令(如spawn ssh root@192.168.1.1):”spawn”是expect的初始命令,用于啟動(dòng)一個(gè)新的交互進(jìn)程,之后所有的操作都會(huì)在這個(gè)進(jìn)程中進(jìn)行。

2.set:定義變量/為變量賦值。使用語(yǔ)法:set 變量名 值。

3.puts:將變量值/字符串定向到本地標(biāo)準(zhǔn)輸出文件(即定位到屏幕)。使用語(yǔ)法:puts “字符串/$變量名”

4.send_user:作用和使用方法類(lèi)似于”puts”,區(qū)別在于”puts”會(huì)在輸出內(nèi)容的結(jié)尾自動(dòng)追加一個(gè)換行符,而”send_user”不會(huì)。

5.send:向交互進(jìn)程發(fā)送信息/命令(字符串和一些特殊符號(hào),\r—回車(chē),\n—換行,\t—制表符)。使用語(yǔ)法:send “信息/命令[\r]”。

6.[lindex $argv 數(shù)字]:表示外部傳遞參數(shù)的值,數(shù)字是n,就表示第n-1個(gè)參數(shù)。注:$argc表示外部傳遞參數(shù)的個(gè)數(shù),也是一個(gè)值。

7.expect+字符串+{ 命令 }:將字符串與交換進(jìn)程接收到的信息進(jìn)行匹配。如果匹配成功(字符串是交換進(jìn)程接收到的信息的一部分),執(zhí)行包含在”{}”中的命令;如果匹配失敗,不執(zhí)行包含在”{}”中的命令。該命令有三種使用方法:

第一種:?jiǎn)畏种J?/p>

①expect 字符串 { 命令 }

解釋?zhuān)喝绻址c交換進(jìn)程接收到的信息匹配成功,執(zhí)行包含在”{}”中的命令,并結(jié)束該expect命令;如果字符串與交換進(jìn)程接收到的信息匹配失敗,timeout秒后結(jié)束該expect命令。(注:腳本執(zhí)行到expect命令時(shí),計(jì)時(shí)器就開(kāi)始計(jì)時(shí),并會(huì)在計(jì)時(shí)器超時(shí)前不斷對(duì)交換進(jìn)程接收到的信息進(jìn)行掃描,嘗試字符串與信息的匹配。)

②expect {

字符串{ 命令 }

timeout { 命令 }

}

解釋?zhuān)喝绻址c交換進(jìn)程接收到的信息匹配成功,執(zhí)行包含在”{}”中的命令,并結(jié)束該expect命令;如果字符串與交換進(jìn)程接收到的信息匹配失敗,timeout秒后執(zhí)行包含在”{}”中的命令,之后結(jié)束該expect命令。(注:腳本執(zhí)行到expect命令時(shí),計(jì)時(shí)器就開(kāi)始計(jì)時(shí),并會(huì)在計(jì)時(shí)器超時(shí)前不斷對(duì)交換進(jìn)程接收到的信息進(jìn)行掃描,嘗試字符串與信息的匹配。)

第二種:多分支模式

①expect {

字符串1 { 命令 }

字符串2 { 命令 }

}

解釋?zhuān)喝绻址?與交換進(jìn)程接收到的信息匹配成功,執(zhí)行執(zhí)行包含在”{}”中的命令,并結(jié)束該expect命令;如果字符串1與交換進(jìn)程接收到的信息匹配失敗、字符串2與交換進(jìn)程接收到的信息匹配成功,執(zhí)行包含在”{}”中的命令,并結(jié)束該expect命令;如果字符串1、字符串2皆與交換進(jìn)程接收到的信息匹配失敗,timeout秒后結(jié)束該expect命令。(注:腳本執(zhí)行到expect命令時(shí),計(jì)時(shí)器就開(kāi)始計(jì)時(shí),并會(huì)在計(jì)時(shí)器超時(shí)前不斷對(duì)交換進(jìn)程接收到的信息進(jìn)行掃描,嘗試字符串與信息的匹配。)

②expect {

字符串1 { 命令 }

字符串2 { 命令 }

timeout { 命令 }

}

解釋?zhuān)喝绻址?與交換進(jìn)程接收到的信息匹配成功,執(zhí)行執(zhí)行包含在”{}”中的命令,并結(jié)束該expect命令;如果字符串1與交換進(jìn)程接收到的信息匹配失敗、字符串2與交換進(jìn)程接收到的信息匹配成功,執(zhí)行執(zhí)行包含在”{}”中的命令,并結(jié)束該expect命令;如果字符串1、字符串2皆與交換進(jìn)程接收到的信息匹配失敗,timeout秒后執(zhí)行包含在”{}”中的命令,之后結(jié)束該expect命令。(注:腳本執(zhí)行到expect命令時(shí),計(jì)時(shí)器就開(kāi)始計(jì)時(shí),并會(huì)在計(jì)時(shí)器超時(shí)前不斷對(duì)交換進(jìn)程接收到的信息進(jìn)行掃描,嘗試字符串與信息的匹配。)

第三種:循環(huán)多分支模式(注:exp_continue命令只能出現(xiàn)在expect命令的匹配語(yǔ)句中,執(zhí)行到exp_continue命令時(shí),腳本會(huì)跳出當(dāng)前expect命令,并重新執(zhí)行該expect命令,直到expect命令通過(guò)不包含exp_continue命令的匹配語(yǔ)句結(jié)束、或expect命令匹配超時(shí)結(jié)束。)

①expect {

字符串1 { 命令; exp_continue }

字符串2 { 命令 }

}

解釋?zhuān)喝绻址?與交換進(jìn)程接收到的信息匹配成功,執(zhí)行執(zhí)行包含在”{}”中的命令,并重新執(zhí)行該expect命令;如果字符串1與交換進(jìn)程接收到的信息匹配成功,執(zhí)行執(zhí)行包含在”{}”中的命令,并重新執(zhí)行該expect命令...;如果字符串1與交換進(jìn)程接收到的信息匹配失敗、字符串2與交換進(jìn)程接收到的信息匹配成功,執(zhí)行包含在”{}”中的命令,并結(jié)束該expect命令;如果字符串1、字符串2皆與交換進(jìn)程接收到的信息匹配失敗,timeout秒后結(jié)束該expect命令。(注:腳本執(zhí)行到expect命令時(shí),計(jì)時(shí)器就開(kāi)始計(jì)時(shí),并會(huì)在計(jì)時(shí)器超時(shí)前不斷對(duì)交換進(jìn)程接收到的信息進(jìn)行掃描,嘗試字符串與信息的匹配。)

②expect {

字符串1 { 命令; exp_continue }

字符串2 { 命令 }

timeout { 命令 }

}

解釋?zhuān)喝绻址?與交換進(jìn)程接收到的信息匹配成功,執(zhí)行執(zhí)行包含在”{}”中的命令,并重新執(zhí)行該expect命令;如果字符串1與交換進(jìn)程接收到的信息匹配成功,執(zhí)行執(zhí)行包含在”{}”中的命令,并重新執(zhí)行該expect命令...;如果字符串1與交換進(jìn)程接收到的信息匹配失敗、字符串2與交換進(jìn)程接收到的信息匹配成功,執(zhí)行包含在”{}”中的命令,并結(jié)束該expect命令;如果字符串1、字符串2皆與交換進(jìn)程接收到的信息匹配失敗,timeout秒后執(zhí)行包含在”{}”中的命令,之后結(jié)束該expect命令。(注:腳本執(zhí)行到expect命令時(shí),計(jì)時(shí)器就開(kāi)始計(jì)時(shí),并會(huì)在計(jì)時(shí)器超時(shí)前不斷對(duì)交換進(jìn)程接收到的信息進(jìn)行掃描,嘗試字符串與信息的匹配。)

8.timeout:timeout是expect中的一個(gè)關(guān)鍵字變量,用于控制expect命令的超時(shí)時(shí)間。需要注意的是,這個(gè)超時(shí)時(shí)間針對(duì)于整個(gè)expect命令,而不是針對(duì)于expect命令中的某條匹配語(yǔ)句。也就是說(shuō),只有expect命令中所有匹配語(yǔ)句都匹配失敗后,才會(huì)開(kāi)始計(jì)算超時(shí)時(shí)間。timeout變量值缺省為10(秒),我們可以通過(guò)”set timeout=值”的方式為其重新賦值,作用范圍:本次賦值到下一次賦值間的所有expect命令。注:如果需要為timeout變量重新賦值,應(yīng)在expect命令之外進(jìn)行。

9.expect eof:該命令的作用是結(jié)束spawn交互進(jìn)程,將命令行切回至運(yùn)行腳本的主機(jī)(即從遠(yuǎn)端服務(wù)器登出)。

10.interact:缺省情況下,expect腳本執(zhí)行完畢后會(huì)自動(dòng)從遠(yuǎn)端服務(wù)器登出(即便沒(méi)有顯式地執(zhí)行”expect eof”命令)。使用interact命令后,expect腳本執(zhí)行完畢會(huì)繼續(xù)保持當(dāng)前狀態(tài),并將控制權(quán)移交給用戶。

11.exit:結(jié)束該腳本。

expect中的if語(yǔ)句:

if { 條件表達(dá)式 } {

命令

}

if { 條件表達(dá)式 } {

命令

} else {

命令

}

expect中的while語(yǔ)句:

while { 條件表達(dá)式 } {

命令

}

expect中的for語(yǔ)句:

for { set i 1 } { $i =10 } { incr i } {

命令

}

incr變量名 步長(zhǎng) ??——變量自增

incr 變量名 -步長(zhǎng) ???——變量自減

數(shù)學(xué)運(yùn)算需使用let、expr等工具

linux下怎么用exp和imp導(dǎo)出和導(dǎo)入指定的oracle數(shù)據(jù)庫(kù)表?

exp help=y

imp help=y

說(shuō)的很清楚

數(shù)據(jù)庫(kù)歸檔不歸檔都可以,scott是一個(gè)用戶名,tiger是這個(gè)用戶的密碼,舉兩個(gè)例子

exp scott/tiger owner=scott file=temp.dmp log=temp.log

exp scott/tiger tables=(emp,dept) file=temp.dmp log=temp.log

本文名稱:linux命令exp Linux命令行與shell腳本編程大全
鏈接地址:http://muchs.cn/article20/doscijo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、服務(wù)器托管、網(wǎng)站設(shè)計(jì)公司、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)