Time of Update: 2018-12-08
bash shell只支援一維數組,但參數個數沒有限制。聲明一個數組:declare -a array(其實不用聲明,按數組方式直接賦值給變數即可,BASH就知道那是數組)數組賦值:(1) array=(var1 var2 var3 ... varN)(2) array=([0]=var1 [1]=var2 [2]=var3 ... [n]=varN)(3) array[0]=var1 arrya[1]=var2 ...
Time of Update: 2018-12-08
讀取一個檔案,把每一行賦值給一個數組的變數,然後用for迴圈列印出來複製代碼 代碼如下:#!/bin/shi=1SUM=`sed -n '$=' tmp.txt` #計算檔案的總行數echo "$SUM"while read linedo arr[$i]="$line" i=`expr $i + 1`done < tmp.txtecho "$i"i=1for i in `seq $SUM` ;do echo "${arr[$i]}"done附:shell數組補充知識一、
Time of Update: 2018-12-08
代碼一:複製代碼 代碼如下:#!/bin/bash# 統計網卡流量# link:www.jb51.net# date:2013/2/26n=10daterm -rf /tmp/ifconfig_logwhile (( $n >= 0 ))do n=$(($n - 1)); date >> /tmp/ifconfig_log ifconfig eth1 >> /tmp/ifconfig_log sleep 1donegrep "RX bytes:"
Time of Update: 2018-12-08
複製代碼 代碼如下:#!/usr/bin/expect -fset ipaddress [lindex $argv 0]set passwd [lindex $argv 1]set timeout 30spawn ssh root@$ipaddress#expect "yes/no"#send "yesr"expect "password:"send "$passwdr"expect "]*"send "mkdir -p /tmp/haha/haha2r"send "exitr"********
Time of Update: 2018-12-08
提取oralce當天的alert log的shell指令碼複製代碼 代碼如下:#/bin/sh#get alert of everyday#then name of file is everyday_alert.shdir="/oracle/admin/bbdz/bdump"num=$(cat -n ${dir}/alert_bbdz.log | grep "`date|cut -c 1-10`"|head -n 1 |awk '{print $1}')tail +${num}
Time of Update: 2018-12-08
linux shell 中"2>&1"的含義指令碼:nohup /mnt/Nand3/H2000G >/dev/null 2>&1 &對於& 1 更準確的說應該是檔案描述符 1,而1 一般代表的就是STDOUT_FILENO,實際上這個操作就是一個dup2(2)調用.他標準輸出到all_result
Time of Update: 2018-12-08
代碼一ubuntu與centos複製代碼 代碼如下:ubuntu:#!/bin/bashecho "ipaddr:"read lineecho $linesed "s/address.*$/address=${line}/g" /etc/network/interfacescentos(未測試):#!/bin/bashecho "ipaddr:"read lineecho $linesed "s/IPADDR.*$/IPADDR=${line}/g"
Time of Update: 2018-12-08
備份網站內容 複製代碼 代碼如下:#!/bin/bash#指定啟動並執行指令碼shell#運行指令碼要給使用者執行許可權bakdir=/backupmonth=`date +%m`day=`date +%d`year=`date +%Y`hour=`date +%k`min=`date +%M`dirname=$year-$month-$day-$hour-$minmkdir $bakdir/$dirnamemkdir $bakdir/$dirname/confmkdir
Time of Update: 2018-12-08
備份資料庫的shell指令碼一複製代碼 代碼如下:#!/bin/bash#指定啟動並執行指令碼shell#運行指令碼要給使用者執行許可權bakdir=/backupmonth=`date +%m`day=`date +%d`year=`date +%Y`hour=`date +%k`min=`date +%M`dirname=$year-$month-$day-$hour-$minmkdir $bakdir/$dirnamemkdir $bakdir/$dirname/confmkdir
Time of Update: 2018-12-08
1、檔案類型介紹linux系統中主要包括以下七種檔案類型: d 目錄 - 普通檔案 l 符號連結 s 通訊端檔案 b 塊裝置檔案 c 字元裝置檔案 p 具名管道檔案2、RegexRegex在shell編程中非常重要。從一個檔案或命令輸出中抽取或過濾文本時。可使用Regex(RE),Regex是一些特殊或不很特殊的字串模式的集合。基本的元字元集:^ 只匹配行首。$ 只匹配行尾。* 一個單字元後緊跟*,匹配0個或多個此單字元。[]
Time of Update: 2018-12-08
一、寫備份並清除老日誌Shell指令碼:複製代碼 代碼如下:#!/bin/sh#backup eoslog#author rhao#date 2008-12-27#定義環境變數EOS_HOME=/home/eosSAS_HOME=/home/eos/SAS# 測試主輔結點if test -d '/home/eos/SAS/SAS1_web1'then SAS_LOG_HOME=$SAS_HOME/SAS1_web1/SAS_Domain/binelse
Time of Update: 2018-12-08
複製代碼 代碼如下:#/bin/bash# history#把以下代碼直接粘貼到/etc/profile後USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`HISTDIR=/var/log/.histif [ -z $USER_IP ]then USER_IP=`hostname`fiif [ ! -d $HISTDIR ]then mkdir -p $HISTDIR chmod 777
Time of Update: 2018-12-08
1、列印一些頭資訊command << dilimiter…………dilimiter以分界符號dilimiter中的內容作為命令的標準輸入常用在echo命令中,這樣就避免了沒輸出一行就要使用一個echo命令,同時,輸出格式的調整也相應變得簡單了。例如: echo << something_message**********************hello, welcome to use my shell
Time of Update: 2018-12-08
複製代碼 代碼如下:#!/bin/bashdeclare gw=`route -n | grep -e '^0.0.0.0'`declare gwname=`echo $gw | grep -oe '\w*$'`declare gwip=`echo $gw | grep -oe '[0-9]\{2,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'`declare gwmac=`arp -n | grep -e $gwip | grep -oe '[0-
Time of Update: 2018-12-08
1、backup_run.sh複製代碼 代碼如下: #!/bin/sh # backup_run # script to run the backups # loads in a setting file for the user to change SOURCE=/home/bob/backup.defaults check_source() { # check_source # can we load the file
Time of Update: 2018-12-08
3.1 尋找文本grep:使用POSIX定義的基本Regex(BRE)。egrep:使用擴充Regex(ERE)。fgrep:快速grep。使用最佳化的演算法,匹配固定字串而非Regex。1992 POSIX標準將這三個改版整合成一個grep程式。$ who | grep -F austen使用-F選項尋找固定字串。事實上,只要匹配的模式裡未含有Regex的meta字元,則grep預設行為模式就等同於使用了-F。3.2.6 在文字檔裡進行替換一般來說,執行文本替換的正確程式應該是sed -
Time of Update: 2018-12-08
在部署一個任務時,其中有一項必須的過程就是將一些檔案,如安裝包發送到大量的伺服器上去。雖然已有宇哥的指令碼可用:通過paramiko模組提供的ssh和scp功能編寫的python指令碼。但我到現在還在對python的恐懼之中(雖然已經在空閑時間努力去學習了),所以使用了shell和expect指令碼結合的方式,寫了這個批量scp的指令碼工具。
Time of Update: 2018-12-08
4.1 排序文本4.1.1 行的排序未提供命令列選項時,整個記錄會根據當前locale所定義的次序排序。在傳統的C locale中,也就是ASCII順序。4.1.2
Time of Update: 2018-12-08
複製代碼 代碼如下:#!/bin/shclearwhile ((1>0))do NET=$(netstat -anp | grep 1000 | grep EST | wc -l) PRC=$(ps aux | grep thread1 | grep -v grep | grep -v SCREEN | awk '{ print " CPU: " $3 "%, MEM: " $4 "%, RSS: " $6/1024 "M, VSZ: " $5/1024 "M, PID: " $2 ""
Time of Update: 2018-12-08
複製代碼 代碼如下:#!/bin/bash#This script is use for describle CPU Hard Memery Utilizationtotal=0idle=0system=0user=0nice=0mem=0vmexec=/usr/bin/vmstatwhich sar > /dev/null 2>&1if [ $? -ne 0 ]then ver=`vmstat -V | awk '{printf $3}'` nice=0 temp=`