Linux script 命令記錄(資料庫)操作步驟
對DBA而言,經常碰到升級資料庫或是apply patch,以及有些時候需要執行大量的指令碼。對於這些操作我們希望現在在螢幕同時又輸出的檔案以備後續查詢過程中曾經丟失的步驟或錯誤。Linux下的script命令就是解決這個問題的好幫手。
1、script命令描述
- script命令會記錄所有的操作到檔案同時在螢幕上輸出,直到終止登陸的會話,或使用CRTL+D,或使用exit退出則停止記錄。
- 這個命令對於資料庫的升級或是重要設定的情形下使用可以用於後續查詢操作成功或失敗。
- 用法: $ script [upgrade.log]
- 如果未指定日誌檔名的情形,自動生成日誌檔名為typescript。
- 如果需要輸出到已經存在的日誌檔案,則使用 -a 引數,再接已經存在日誌檔名。
- 如果需要在輸出到日誌檔案的同時,也可以檢視日誌檔案的內容,可以使用 -f 引數。
- # script 幫助描述
- robin@SZDB:~> man script
- NAME
- script - make typescript of terminal session
- SYNOPSIS
- script [-a] [-c COMMAND] [-f] [-q] [-t] [file]
- DESCRIPTION
- Script makes a typescript of everything printed on your terminal. It is useful for students who need a hardcopy record of
- an interactive session as proof of an assignment, as the typescript file can be printed out later with lpr(1).
- If the argument file is given, script saves all dialogue in file. If no file name is given, the typescript is saved in the
- file typescript.
- Options:
- -a Append the output to file or typescript, retaining the prior contents.
- -c COMMAND
- Run the COMMAND rather than an interactive shell. This makes it easy for a script to capture the output of a pro-
- gram that behaves differently when its stdout is not a tty.
- -f Flush output after each write. This is nice for telecooperation: One person does `mkfifo foo; script -f foo' and
- another can supervise real-time what is being done using `cat foo'.
- -q Be quiet.
- -t Output timeing data to standard error. This data contains two fields, separated by a space. The first field indi-
- cates how much time elapsed since the previous output. The second field indicates how many characters were output
- this time. This information can be used to replay typescripts with realistic typing and output delays.
2、script命令用法示例
- a、script命令後接日誌檔名
- robin@SZDB:~> script test_logfile.log #啟用script
- Script started, file is test_logfile.log
- .................#中間操作省略
- robin@SZDB:~> exit #停止script
- exit
- Script done, file is test_logfile.log
- #檢視剛剛生成的日誌檔案
- robin@SZDB:~> more test_logfile.log
- Script started on Fri 26 Apr 2013 05:45:23 PM CST
- robin@SZDB:~> sid
- bash: sid: command not found
- robin@SZDB:~> . ~/.bash_profile
- robin@SZDB:~> sid
- ORA_CRS_HOME=/opt/oracle/product/10gR2/crs
- ORACLE_PATH=.:/users/robin/dba_scripts/custom/sql
- ORA_ASM_HOME=/opt/oracle/product/10gR2/asm
- ORACLE_SID=SYBO2SZ
- ORACLE_BASE=/users/oracle
- ORACLE_HOME=/users/oracle/OraHome10g
- robin@SZDB:~> sql
- SQL*Plus: Release 10.2.0.3.0 - Production on Fri Apr 26 17:46:12 2013
- Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
- Error accessing PRODUCT_USER_PROFILE
- Warning: Product user profile information not loaded!
- You may need to run PUPBLD.SQL as SYSTEM
- Connected to:
- Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
- goex_admin@SYBO2SZ> alter session set current_schema=scott;
- Session altered.
- goex_admin@SYBO2SZ> select * from dept;
- DEPTNO DNAME LOC
- ---------- -------------- -------------
- 10 ACCOUNTING NEW YORK
- 20 RESEARCH DALLAS
- 30 SALES CHICAGO
- 40 OPERATIONS BOSTON
- goex_admin@SYBO2SZ> exit
- Disconnected from Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
- robin@SZDB:~> exit
- exit
- Script done on Fri 26 Apr 2013 05:46:32 PM CST
- b、script 命下直接跟指令碼名的示例
- robin@SZDB:~> script -c retval.sh
- Script started, file is typescript
- 7788 SCOTT ANALYST 7566 19870419 00:00:00 3100 20
- Script done, file is typescript
- #被執行的shell指令碼的內容
- # Author : Robinson
- # Blog : http://blog.csdn.ner/robinson_0612
- robin@SZDB:~> more ~/dba_scripts/custom/bin/retval.sh
- #!/bin/bash
-
RETVAL=`sqlplus -silent scott/tiger <
- SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
- SELECT * FROM emp WHERE ename='SCOTT';
- EXIT;
- EOF`
- if [ -z "$RETVAL" ]; then
- echo "No rows returned from database"
- exit 0
- else
- echo $RETVAL
- fi
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23490154/viewspace-1062424/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- duplicate資料庫的操作步驟資料庫
- Linux下使用script命令記錄終端操作顯示Linux
- informix資料庫擴容操作步驟ORM資料庫
- Masonite 熟悉步驟小記錄 (二、連線資料庫)資料庫
- Masonite 熟悉步驟小記錄 (三、資料庫遷移)資料庫
- Linux下使用ps命令來檢視oracle資料庫相關程式的操作步驟LinuxOracle資料庫
- 記錄Linux操作命令Linux
- 快速掌握重啟Oracle資料庫的操作步驟Oracle資料庫
- 記錄資料庫所有ddl操作資料庫
- rhel5_script自動記錄操作命令歷史序列
- Masonite 熟悉步驟小記錄 (八、資料工廠)
- oracle DG資料庫切換步驟筆記Oracle資料庫筆記
- 資料庫查詢步驟資料庫
- 複製資料庫步驟資料庫
- cmdb 查詢資料庫操作記錄資料庫
- Linux的script命令——隱藏在終端的記錄器Linux
- informix資料空間映象操作步驟ORM
- Oracle資料庫啟動步驟Oracle資料庫
- JDBC連線資料庫步驟JDBC資料庫
- 資料庫優化的步驟資料庫優化
- 資料庫設計方法步驟資料庫
- 手動建立資料庫步驟資料庫
- 記錄集連線步驟
- 同版本的庚頓實時資料庫的資料遷移操作步驟資料庫
- 使用create database語句建立資料庫的詳細操作步驟Database資料庫
- 1.3.3.5. 步驟4:執行SQL*Plus 連線資料庫命令SQL資料庫
- Mysql資料庫操作命令MySql資料庫
- Oracle資料庫從 9.2.0.1 到 9.2.0.8升級步驟for linuxOracle資料庫Linux
- 操作步驟
- MySQL資料庫安裝步驟-WindowsMySql資料庫Windows
- PHP連線資料庫的步驟PHP資料庫
- 資料庫設計的基本步驟資料庫
- 手工建立資料庫的完整步驟資料庫
- JDBC訪問資料庫的步驟JDBC資料庫
- 資料庫建模步驟(power designer)資料庫
- spss怎麼錄入資料 spss資料錄入步驟SPSS
- openwifi編譯步驟記錄WiFi編譯
- MySQL資料庫複製操作的詳細實現步驟介紹MySql資料庫