顯示具有 shell 標籤的文章。 顯示所有文章
顯示具有 shell 標籤的文章。 顯示所有文章

2017年3月25日 星期六

bash getopts Sendsms

#!/bin/bash
#title :sendsms.sh
#description :This script will send
#author :Mike1Hsieh
#date :2016-10-19
#version :1.6
#usage :bash sendsms.sh
#notes :
#bash_version :
# 1.6  add
#
#==============================================================================

VER=1.6
reset='\e[39m\e[49m' # Text Reset
green='\e[32m' # Text Reset
red='\e[31m' # Text Reset
white='\e[97m' # Text Reset
Color_yellow='\e[33m' # Text Reset



print_HELP(){
echo -e "
${white}Script: $0 ${reset}
${white}Script Version : $VER${reset}
${white}參數說明 ${reset}
${green}\t\$1 : 簡訊內容 ${reset}
${green}\t\$2 : 簡訊群組 ${reset}
${green}\t\$3 : 簡訊等級 ${reset}

${white}$0 sendtxt  group  Level ${reset}
${white}舊有模式範例${reset}
${green}\t$0 \"SENDTXT\" \"444\" \"100\" ${reset}

${red} =========================${reset}
${green}\t -m | -M : 簡訊內容 ${reset}
${green}\t -g | -G : 簡訊群組 ${reset}
${green}\t -l | -L : 簡訊等級 ${reset}
${white}$0 -m sendtxt  -g group  -l Level ${reset}
${white}範例${reset}
${green}\t$0 -m \"SENDTXT\" -g \"444\" -l \"100\" ${reset}
"
exit ;
}

 [ $# -eq 0 ]  &&   print_HELP


while getopts ":l:L:m:M:g:G:H:h:" opt; do
  case $opt in
    m|M)
   
 omessage="$OPTARG"
      ;;
g|G)

  group="$OPTARG"
;;
    l|L)

 leval="$OPTARG"
      ;;
h|H)
echo "H"
print_HELP
exit

;;

  esac
done


[ "$omessage" == "" ] && [ "$group" == "" ] && group="$2"
[ "$omessage" == "" ] && [ "$leval" == "" ] && leval="$3"
[ "$omessage" == "" ] && omessage="$1"

[ "$group" == "" ] && group="444"
[ "$leval" == "" ] && leval="100"


message=`echo $omessage | sed s'/ /%20/g'`

#  echo "$1  $2  $3 $4 $5  $6"

echo -e " ${white} Message ==> $message ${reset}"
echo -e " ${white} Group ==> $group ${reset}"
echo -e " ${white} Level ==> $leval ${reset}"

echo "grp=${group}&level=${leval}&msg=${message}&encoding=BIG5"

[ "$leval" == "" ] && leval="100"
message=`echo $omessage | sed s'/ /%20/g'`





2016年5月2日 星期一

oracle 基本的 alias









alert log 產出位子

SQL> show parameter background

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_core_dump                 string      partial
background_dump_dest                 string      /u01/app/oracle/diag/rdbms/orcl/orcl/trace



====================================================


export  PS1="\e[4m$ORACLE_SID\[\e[0m\]::\[\e[41m\]\h:\W \u\\$ \[\e[0m\] "
alias SS='sqlplus / as sysdba'
alias cdTNS='cd $ORACLE_HOME/network/admin'
alias cdDBS='cd $ORACLE_HOME/dbs'
alias cdALT='cd  /u01/app/oracle/diag/rdbms/orcl/orcl/trace'
alias viALT='vi  /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log'
alias TAILALT='tail -f  /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log '










前面有SID, 後面紅底白字
Prod
 PS1="\e[4m$ORACLE_SID\[\e[0m\]::\[\e[41m\]\h:\W \\$ \[\e[0m\] "



ColdStandby
 PS1="\e[4m$ORACLE_SID\[\e[0m\]::\[\e[36;44m\]\h:\W \\$ \[\e[0m\] "















2008年10月23日 星期四

unix 修改密碼偷吃步

expect
配合 console 作變化

自已作一個文檔
要改的時候就用貼的

#/.updat_root_passwd.exp Host user userpwd rootpwd newpwd
/script/updat_root_passwd.exp 192.168.1.1 c9992 pwd GOD dog
/script/updat_root_passwd.exp 192.168.1.2 c9992 pwd GOD dog




#!/usr/local/bin/expect
#scriptname : updat_root_passwd.exp
set HOSTNAME [lindex $argv 0]
set USERNAME [lindex $argv 1]
set USERPASSWD [lindex $argv 2]
set ROOTPASSWD [lindex $argv 3]
set NEWROOTPASSWD [lindex $argv 4]

spawn ssh $USERNAME@$HOSTNAME

expect "*assword:*"
send "$USERPASSWD\r"

expect "*>*"
send "su \r"

expect "*assword:*"
send "$ROOTPASSWD\r"

expect "*#*"
send "passwd root\r"

expect "*assword:*"
send "$NEWROOTPASSWD\r"

expect "*assword:*"
send "$NEWROOTPASSWD\r"

expect "*passwd: password successfully changed for root*"
exit

2007年11月9日 星期五

AWK小簡介 一個log的分析

AWK是一個很好用的指令喔

這個是一小段的Netbackup log file

cat logfile
0 NPACDB_local ORA_NPACDB_LOG Default-Ap BCSPBS01 10/23/2007 01:44:29
0 NPACDB_local ORA_NPACDB_LOG Sch_ORA_NP BCSPBS01 10/23/2007 01:44:39
0 NPACDB_local ORA_NPACDB_LOG Default-Ap BCSPBS01 10/23/2007 03:54:52
0 NPACDB_local ORA_NPACDB_LOG Sch_ORA_NP BCSPBS01 10/23/2007 03:55:11
96 BCSPBS01 FS_BCSPBS01 Sch_FS_BCS BCSPBS01 10/23/2007 05:15:11
(unable to allocate new media for backup, storage unit has none available)
96 BCSPBS01 FS_BCSPBS01 Sch_FS_BCS BCSPBS01 10/23/2007 05:15:12
(unable to allocate new media for backup, storage unit has none available)
0 NPACDB_local ORA_NPACDB_LOG Default-Ap BCSPBS01 10/23/2007 06:05:21
0 NPACDB_local ORA_NPACDB_LOG Sch_ORA_NP BCSPBS01 10/23/2007 06:05:39
0 NPACDB_local ORA_NPACDB_LOG Default-Ap BCSPBS01 10/23/2007 08:15:28
0 NPACDB_local ORA_NPACDB_LOG Default-Ap BCSPBS01 10/23/2007 08:16:14
0 NPACDB_local ORA_NPACDB_LOG Sch_ORA_NP BCSPBS01 10/23/2007 08:16:25
0 NPACDB_local EXP_NPACDB Sch_EXP_NP BCSPBS01 10/23/2007 09:55:51
0 NPACDB_local ORA_NPACDB_LOG Default-Ap BCSPBS01 10/23/2007 10:25:56
0 NPACDB_local ORA_NPACDB_LOG Default-Ap BCSPBS01 10/23/2007 10:26:46
0 NPACDB_local ORA_NPACDB_LOG Sch_ORA_NP BCSPBS01 10/23/2007 10:27:03
196 BCSPBS01 FS_BCSPBS01 Sch_FS_BCS BCSPBS01 10/23/2007 11:15:31
(client backup was not attempted because backup window closed)
0 NPACDB_local ORA_NPACDB_LOG Default-Ap BCSPBS01 10/23/2007 12:35:54
0 NPACDB_local ORA_NPACDB_LOG Default-Ap BCSPBS01 10/23/2007 12:36:49
0 NPACDB_local ORA_NPACDB_LOG Sch_ORA_NP BCSPBS01 10/23/2007 12:36:55
0 NPACDB_local ORA_NPACDB_LOG Default-Ap BCSPBS01 10/23/2007 14:35:28

事件 第一個格子是代表成功失敗
0 為成功 其他為失敗

條件
1 行中有 Default-Ap 為程序自已起來的 必須不計算
2 想要計算有多少成功的
3 想要計算有多少失敗的
4 失敗重式的部份不計算

主要用在有一個特定格式 很象excel的統計 分析功能
這個要怎麼作呢

想法:
1 先排除怪怪的行數
(client backup was not attempted because backup window closed)
那種前面沒有帶數字的 要先排除
2 排除 Default-Ap
條件1 所提及的部份
3 條件4是比較討厭一點的部份


從: 來判別 分左邊及右邊
gawk -F: "!/Default-Ap/&&!/\(/{if ($1!=y)print $0; y=$1}" logfile
再度給| 符號接下去作剩下的處理
| gawk "{if($1==0){s++}else{f++}}END{print s,f}"

合在一起寫
gawk -F: "!/Default-Ap/&&!/\(/{if ($1!=y)print $0; y=$1}" logfile | gawk "{if($1==0){s++}else{f++}}END{print s,f}"

RHEL install EPEL

  https://www.linuxtechi.com/install-epel-repo-on-rhel-system/ EPEL dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest...