`
Tristan_S
  • 浏览: 365971 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

shell 编程

 
阅读更多
SSHFS
挂在远程文件系统 基于ssh的
不用在多个文件中切换了
方便查看日志



--------------------

watch 命令
实时刷新执行程序
watch -d free 实时刷新内存变化

-----------

查看apache配置文件的时候有很多注释,需要从大量的#号中找有用的配置,挺费神的,可以用sed命令将 #号和换行过滤掉

sed -n '/#/!p' httpd.conf | sed -n '/^$/!p' | less



----------------------

awk vs sed
我觉着,如果是按行操作,就统统都用 sed
如果是不仅按行,还要按列操作,就统统都用 awk


在文本处理方面,perl相当于awk/sed/grep的一个高度概括
sed/awk/grep 的好处在于,它们大多数都是单一文件的软件,因此在小系统上要比 Perl 好使,Perl 动辄数十M……


检测服务器CPU的性能
#!/bin/sh

case "$ENV" in
"DP10 Prod")
  SERVERS="g1u2201 g1u2202 g2u1596 g2u1597 g1u2203 g1u2204 g1u2205 g1u2206 g2u1598 g2u1599 g2u1600 g2u1601";;
"Perf ITG")
  SERVERS="g2u1495 g2u1496 g2u1497";;
"Perf2 ITG")
  SERVERS="g4u1905 g4u1906 g4u1907 g4u1908";;
"Perf2 ITG Web")
  SERVERS="g4t2135g g4t2136g";;
"POC-Cloud-c0007615")
  SERVERS="c0007615";;
esac

shell_file=/tmp/$BUILD_TAG.txt

cat > $shell_file <<EOF
sleep JOB_COUNT
vmstat $INTERVAL $((MINUTES*60/INTERVAL))
EOF

trap "rm $shell_file" INT

/home/zfeng/remote/tools/remote_shell.sh $shell_file "$SERVERS"


#!/bin/sh

SHELL_TXT=$(cat $1)
shift
HOSTS="$@"
JOB_COUNT=1

echo "#==="
echo "# Following Shell will by run on hosts $HOSTS (JOB_COUNT is variable)"
echo "#---"
echo "${SHELL_TXT/JOB_COUNT/JOB_COUNT(${JOB_COUNT})}"
echo "# End"

KILL_TXT="echo 'Kill Jobs' "

for host in $HOSTS
do
ssh $host "

hostname
id
pwd
${SHELL_TXT/JOB_COUNT/${JOB_COUNT}}
exit
" 2>&1 | awk -v host=$host '{print host "|" strftime("%F %T", systime())"> " $0; fflush();}' &
KILL_TXT="$KILL_TXT ; kill %$JOB_COUNT"
JOB_COUNT=$((JOB_COUNT+1))
done

trap "$KILL_TXT" INT
wait



ProcessMonitor

cat > $shell_file <<EOF
COUNT=$((MINUTES*60/INTERVAL))
while [[ COUNT -gt 0 ]]; do
ps -ef| grep httpd | awk '{print \$(NF-5)}' | grep /opt | sort | uniq -c
let COUNT=COUNT-1
if $Once; then
  break
fi
sleep ${INTERVAL}
done
EOF




正则表达式
元字符 * . ^  $ [] \ 
用grep 命令来测试
注意 *只是匹配前面一个普通字符的0次或多次重复
hel*o  能匹配 hello  不能匹配 helxxxo  需要用   hel.*o 来匹配

^行首  $行尾

[]匹配字符集合  [0123456789] [0-9]
注意 ^出现在[]中 就变成了取反  [^b-d]  不在bd范围之间的字符

\ 反斜杠 转义字符

\<\>  精确匹配
\<the\>  them they 不匹配  在grep中使用时需要 加上双引号

正则表达式扩展
?  + () |

通配 和 元字符的意义不完全相同
  * ? ^
用ls 命令来测试

grep 全称 Global search Regular Expression and Print out
-c 匹配数量
-n 显示行号 
-v 不包含模式
-i    不区分大小写
-r 迭代子目录
-E 或字符  grep -vE "#|^$"  httpd.conf  查看非# 空行
-F 不支持正则表达式,按照字符串字面意思匹配


统计consumer的日志错误信息
#!/bin/bash

# Uncomment to next line to Debug
# set -x

# Script parses all consumer logs and displays a sorted list of exceptions and their frequency for Today.

# Variables

Mailto=rao.sheng@hp.com
Today=$(date +"%Y-%m-%d")
Logs=/Bdata/prodlogs/dp10pro/consumer/g*/spf*/*.txt
Regex="\[hpsc\]".*"The portlet with title"
File=/tmp/tmp.$$
First=$(grep -ih  "$Today".*"$Regex" $Logs | head -1 | awk '{print $1,$2}')
Last=$(grep -ih  "$Today".*"$Regex" $Logs | tail -1 | awk '{print $1,$2}')

echo "Parsing logs, use ctrl -c to cancel ..."

echo "First log entry seen at "$First", last at "$Last"" > $File
echo "" >> $File

grep -ihA1  "$Today".*"$Regex" $Logs  | awk '{ if (NR % 3) printf("%s ", $0); else printf("%s\n", $0) }' | cut -d "," -f3,6 | sort | uniq -c | sort -rn >> $File

echo "Done. Emailing result...";
uuencode $File "Consumer.log" | mailx -s "DP10 Consumer log extract for $Today attached" $Mailto


# Clean up
rm -f $File

exit


sample
First log entry seen at 2014-03-09 00:00:52,392, last at 2014-03-09 09:42:43,001

    164  Warranty Check Main, failed to render. com.vignette.portal.portlet.website.InvocationFailedException: Portlet Render Failed. --
     10  PSI Content Results, failed to render. com.vignette.portal.portlet.website.InvocationFailedException: Portlet Render Failed. --
      3  SWD Related Links, failed to render. com.vignette.portal.portlet.website.PortletTimedOutException: The portlet with the UID
      3  SWD Message of the Day, failed to render. com.vignette.portal.portlet.website.PortletTimedOutException: The portlet with the UID
      3  SWD Left Promo Graphics, failed to render. com.vignette.portal.portlet.website.InvocationFailedException: Portlet Render Failed. --
      3  PSI SWD Options Menu, failed to render. com.vignette.portal.portlet.website.PortletTimedOutException: The portlet with the UID
      2  PSI Product Options Menu, failed to render. com.vignette.portal.portlet.website.InvocationFailedException: Portlet Render Failed. --
      2  PSI Message of the Day, failed to render. com.vignette.portal.portlet.website.PortletTimedOutException: The portlet with the UID
      2  PSI Home Right Promo Graphics, failed to render. com.vignette.portal.portlet.website.PortletTimedOutException: The portlet with the UID
      2  PSI Home Left Promo Graphics, failed to render. com.vignette.portal.portlet.website.PortletTimedOutException: The portlet with the UID
      1  Warranty Check Main, failed to render. com.vignette.portal.portlet.website.InvocationFailedException: Portlet Render Failed. 
      1  PSI Product Selector, failed to render. com.vignette.portal.portlet.website.InvocationFailedException: Portlet Render Failed. --

分享到:
评论

相关推荐

    shell 编程指南pdf

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

    shell编程指南shell编程指南shell编程指南shell编程指南

    shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南

    Linux与UNIX Shell编程指南.pdf

    "Linux与UNIX Shell编程指南" Linux与UNIX Shell编程指南是计算机科学领域中一本经典的指南手册,旨在帮助读者快速掌握Linux与UNIX操作系统下的shell编程技术。下面是从该书中生成的相关知识点: 1. Shell概述 ...

    Windows Shell 编程.pdf

    在使用windows shell扩张编程工具的过程中深切体会到windows shell技术资料的重要性,为此,根据Dino Esposito的《Visual C++ Windows Shell Programming》为蓝本,编译形成以下文字,为希望使用windows shell编程的...

    shell编程教程.chm

    shell编程-shell编程-分支语句(1) shell编程-shell编程-分支语句(2) shell编程-shell编程-循环语句(1) shell编程-shell编程-循环语句(2) Linux的shell编程(一) Linux的shell编程(二) Linux的...

    LinuxShell编程基础教程.pdf

    Linux Shell 编程基础教程 本资源为 Linux Shell 编程基础教程,涵盖了 Linux Shell 编程的基础知识,包括语法基本介绍、变量、环境变量、Shell 命令和流程控制等。 一、语法基本介绍 在 Linux Shell 编程中,...

    绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

    本书通过各种实用的系统管理小技巧和趣味脚本代码,详尽地介绍了shell编程各个不同的方面。学完本书后,你将成为一名shell编程高手。 内容简介 本书共分五部分 ,详细介绍了SHELL编程技巧,各种UNIX命令及语法,还...

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    Shell编程

    Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程

    Shell编程高级进阶系列视频.zip

    13Linux下Shell编程之While case演练 14Linux下Shell编程之While case演练 15Shell编程之函数及脚本案例讲解 16Shell编程之函数及脚本案例讲解 17Linux下Shell编程FIND、SED命令实战 18Linux下Shell编程FIND、SED...

    shell编程用户信息管理(模拟)课程设计说明书

    Shell 编程用户信息管理(模拟)课程设计说明书 该课程设计旨在掌握 Linux 操作系统中 shell 脚本编程技术的变量定义、变量使用、循环控制结构、条件选择结构、用户交互、文件读写、文本内容分析以及 Linux 重要...

    Linux操作系统Shell编程

    经典Linux和unix的Shell编程,按照模板练习即可快速提高。

    LINUX与UNIX SHELL编程指南

    LINUX与UNIX SHELL编程指南

    shell编程入门教程+shell脚本专家指南+UNIX.shell编程24小时教程.rar

    shell编程入门教程+shell脚本专家指南+UNIX.shell编程24小时教程

    UNIX命令及SHELL编程

    这是一套完整的Unix培训教材,包括Unix常用命令及SHELL编程基础与高级技巧,PDF格式,共30个文件。另有2个Word文档。包内文件清单如下: 01_Shell-文件安全与权限.PDF 02_Shell-使用find和xargs.PDF 03_Shell-...

    shell编程题目练习

    shell编程题目练习,练习基本的shell编程,学习脚本语言,提高效率

    linux Shell编程入门 实例讲解详解

    Linux Shell编程入门实例讲解详解 Linux Shell编程是Linux系统中一种非常灵活的工具,通过shell编程可以自动化大量的任务,especially适合那些易用性、可维护性和便携性比效率更重要的任务。下面是Linux Shell编程...

    Linux Shell编程从初学到精通 第2版

    第1章 Shell脚本编程概述 1 第2章 Linux文件系统和文本编辑器 12 第3章 正则表达式 43 第4章 sed命令和awk编程 64 第5章 文件的排序、合并和分割 105 第6章 变量和引用 133 ...第17章 bash Shell编程范例 420

    LinuxShell编程基础.pdf

    Linux Shell 编程基础 Linux Shell 编程基础是 Linux 操作系统中一个非常重要的组件,它提供了一个交互式命令行界面,允许用户输入命令来执行各种操作。在 Linux 系统中,Shell 是一个命令解释器,它可以解释用户...

    Shell编程入门基础必备视频教程.zip

    1Linux下Shell编程入门及变量讲解.mp4 2Linux下Shell编程入门及变量讲解.mp4 3Shell编程企业实战菜单系列.mp4 4Shell编程企业实战菜单系列.mp4 5Linux下LAMP实战及脚本编程思路讲解.mp4 6Linux下LAMP实战及脚本编程...

Global site tag (gtag.js) - Google Analytics