unix shell 解析 1
---- shell 1
testdb3:/home/oracle [pprod] >more /home/oracle/utility/macro/tns_log_back_12c.sh
#! /usr/bin/ksh
#set -x
if [ $# = 0 ]
then
echo ""
echo "# usage: $0 tns log file name"
echo ""
else
# Set up the search paths:
PATH=$PATH:.
case $PATH in
*/usr/local/bin* ) ;;
*: ) PATH=${PATH}/usr/local/bin ;;
* ) PATH=${PATH}:/usr/local/bin ;;
esac
export PATH
# Set up the oracle variables:
export ORACLE_SID=pprod
export ORACLE_BASE=/opt/oracle12c
export ORACLE_HOME=/opt/oracle12c/product/12.1
export ORAENV_ASK=NO
. oraenv
export PATH=$ORACLE_HOME/bin:.:$PATH:/usr/bin:/usr/sbin:/etc
export LD_LIBRARY_PATH=/usr/lib:$ORACLE_HOME/lib
export PS1=`hostname`:'${PWD} [$ORACLE_SID] >'
export TERM=vt220
#export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LAapp=AMERICAN_AMERICA.ZHS16GBK
#export NLS_LAapp=AMERICAN_AMERICA.UTF8
#export NLS_DATE_FORMAT='Mon DD YYYY HH24:MI:SS'
umask 022
DATE=`date +%Y%m%d%H%M`
TNS_LOGNAME=$1
TNS_LOGBAK=`hostname`_${TNS_LOGNAME}_`date '+%Y%m%d%H%M'`
TNS_LOGPATH=${ORACLE_HOME}/network/log
cd ${TNS_LOGPATH}
cp ${TNS_LOGNAME} ${TNS_LOGBAK}
if [ $? -ne 0 ]
then
echo "${bold}ERROR:Back tns log error!${normal}"
echo ""
exit 0
fi
> ${TNS_LOGNAME}
/usr/contrib/bin/gzip ${TNS_LOGBAK}
ls -lrt ${ORACLE_HOME}/network/log
fi
--shell 2
testdb3:/home/oracle [pprod] >more /home/oracle/utility/macro/compress_all.sh
SCRIPT_DIR=/home/oracle/utility/macro
PRG_NAME=$SCRIPT_DIR/compress_arch.sh
#$SCRIPT_DIR/compress_arch_app.sh apppr /appprdblog 100 10
#$PRG_NAME appde /appdedblog 10
#$PRG_NAME appRO /approdblog 10
#$PRG_NAME appROA /approadblog 10
$PRG_NAME appspr /appsprdblog 10
$PRG_NAME app /appdblog 10
#$PRG_NAME apppr /appprdblog 10
$PRG_NAME xprprod /xprproddblog 10
$PRG_NAME pcc /pccdblog 10
$PRG_NAME corpprod /corpproddblog 10
$PRG_NAME bpsprod /bpsproddblog 10
$PRG_NAME tgpsprod /tgpsproddblog 10
$PRG_NAME wrlprod /wrlproddblog 24
$PRG_NAME icomprod /icomproddblog 24
$PRG_NAME bizprod /bizlinkdblog 10
#add in 20160901
$PRG_NAME oasprod /oasprodlog 10
|
more compress_arch.sh
ORACLE_SID=$1
dname=$2
COMPRESS=/usr/contrib/bin/gzip
SCRIPT_DIR=/home/oracle/utility/macro
SLEEP="/usr/bin/sleep $3"
# 1. check whether db is up and runniapp on server
up_flag=`${SCRIPT_DIR}/chkdbup.sh ${ORACLE_SID}`
if [ ${up_flag} -eq 0 ]; then
ls -t ${dname}/*.arc | awk -v SLEEP="${SLEEP}" -v COMPRESS=${COMPRESS} '
NR > 40 { print COMPRESS, $0;system(SLEEP) }
' | ksh -x
@@@解析 shell2
1. awk [-参数 变量] 'BEGIN{初始化}条件类型1{动作1}条件类型2{动作2}。。。。END{后处理}'
其中:BEGIN和END中的语句分别在开始读取文件(in_file)之前和读取完文件之后发挥作用,可以理解为初始化和扫尾。
(1)参数说明:
-F re:允许awk更改其字段分隔符
-v var=$v 把v值赋值给var,如果有多个变量要赋值,那么就写多个-v,每个变量赋值对应一个-v
e.g. 要打印文件a的第num行到num+num1行之间的行,
awk -v num=$num -v num1=$num1 'NR==num,NR==num+num1{print}' a
-f progfile:允许awk调用并执行progfile程序文件,当然progfile必须是一个符合awk语法的程序文件。
2.管道的作用
以下2条命令的输出可以比较 ,说明管道是一条条记录处理的。
ls -t /pproddblog/*.dbf*|more
ls -t /pproddblog/*.dbf*
3.NR 用法
NR NR 是总共读取了多少行
条件表达式使用两个符号--问号和冒号给表达式赋值: conditional expression1 ? expression2 : expressional3,其逻辑等同于C语言中的条件表达式。其对应的if/else语句如下:
{
if (expression1)
expression2
else
expression3
}
/> cat testfile
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
pal CT Ann Stephens 5.7 .94 5 13
/> awk 'NR <= 3 {print ($7 > 4 ? "high "$7 : "low "$7) }' testfile
low 3
high 5
low 2
4.
先来看一下system()函数的简单介绍:
#include
int system(const char *command)
system()函数调用/bin/sh来执行参数指定的命令,/bin/sh 一般是一个软连接,指向某个具体的shell,比如bash,-c选项是告诉shell从字符串command中读取命令; 在该command执行期间,SIGCHLD是被阻塞的,好比在说:hi,内核,这会不要给我送SIGCHLD信号,等我忙完再说; 在该command执行期间,SIGINT和SIGQUIT是被忽略的,意思是进程收到这两个信号后没有任何动作。
unix shell 解析 1的更多相关文章
- 【转载】Unix Shell中用[-n]判断字符串不为NULL
转载自:http://blog.sina.com.cn/s/blog_541086430100mosm.html 在Unix Shell中,可以使用-n来判断一个string不是NULL值,但是之前却 ...
- Linux/Unix shell 脚本中调用SQL,RMAN脚本
Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...
- Linux/Unix shell sql 之间传递变量
灵活结合Linux/Unix Shell 与SQL 之间的变量传输,极大程度的提高了DBA的工作效率,本文针对Linux/Unix shell sql 之间传递变量给出几个简单的示例以供参考. Lin ...
- Linux/Unix shell 监控Oracle实例(monitor instance)
使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linu ...
- Linux/Unix shell 监控Oracle监听器(monitor listener)
使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linu ...
- Linux/Unix shell 监控Oracle告警日志(monitor alter log file)
使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linu ...
- Linux/Unix shell 自动发送AWR report(二)
观察Oracle数据库性能,Oracle自带的awr 功能为我们提供了一个近乎完美的解决方案,通过awr特性我们可以随时从数据库提取awr报告.不过awrrpt.sql脚本执行时需要我们提供一些交互信 ...
- Unix Shell 通配符、转义字符、元字符、特殊字符
shell通配符: * 匹配0或多个字符 a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, a01b, ab等 ? 匹配任意一个字符 a?b a与b之间有且只有一个字符 ...
- PowerShell与Unix Shell对比:八大实例
PowerShell与Unix Shell对比:八大实例 本文将从八个实例对比PowerShell和Unix Shell,通常是Linux Bourne Shell(包括sh.ksh和bash等).二 ...
随机推荐
- [RxJS] Chain RxJS Operators Together with a Custom `pipe` Function using Array.reduce
Instead of writing complex operators, it's usually best to write simple, single-purpose operators th ...
- 用SQL脚本 生成INSERT SQL语句
配置表B 中的数据,可以从A表中查询到,在实际配置时,通过sql脚本生成B表的insert脚本,最多用到的是sql中连接符[||],以及双引号[''''] 例1:电销系统中地区出单机构关系表配置数据生 ...
- 找中位数O(n)算法
题目描写叙述: 给定一个未排序的整数数组,找到当中位数. 中位数是排序后数组的中间值,假设数组的个数是偶数个.则返回排序后数组的第N/2个数. 例子 给出数组[4, 5, 1, 2, 3], 返回 3 ...
- C语言细节笔记1
/******************************************************************************* ——笔记 1. 函数申明的书写. 可以 ...
- windows内存管理的机制以及优缺点
分页存储管理基本思想:用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等.可将用户程序的任一页放在内存的任一块中,实现了离散分配. 分段存储管 ...
- Linux下使用inotify实现对文件的监控
项目中,要实现用户通过网页设置參数,后台接收数据然后写串口. 网页写数据到本地文件,使用inotify监控文件的IN_MODIFY事件.当文件被改动,然后触发写串口事件. 第一个程序只把要监控的文件增 ...
- 调参侠的末日? Auto-Keras 自动搜索深度学习模型的网络架构和超参数
Auto-Keras 是一个开源的自动机器学习库.Auto-Keras 的终极目标是允许所有领域的只需要很少的数据科学或者机器学习背景的专家都可以很容易的使用深度学习.Auto-Keras 提供了一系 ...
- 返回模式有流式(streaming)和整体(total) 热词词表解决方案
重要术语说明_语音识别(ASR)_智能语音交互-阿里云 https://help.aliyun.com/document_detail/72238.html 返回模式(response mode) ...
- Fri Jul 28 16:28:52 CST 2017 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection mus
Fri Jul 28 16:28:52 CST 2017 WARN: Establishing SSL connection without server’s identity verificatio ...
- [转]POI读写Excel 修改
[转]POI读写Excel 修改 一.Excel基础 二.HSSF概况 三.通过usermodel读取文件 四.通过usermodel写入文件 五.通过eventusermodel读取文件 六.HSS ...