小知识: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
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:linux ulimit命令用法解析

2023-6-5 7:12:48

建站知识

小知识:Linux系统鲜为人知的12大内幕介绍

2023-6-5 7:29:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索