Time of Update: 2017-02-27
用shell實現informix的效能監控,並以html格式輸出,直觀方便。
Time of Update: 2017-02-27
[ sed簡介: ]sed是一個很好的檔案處理工具, 它本身是一個管道命令, 以行為單位進行處理, 可以用於對資料行進行新增、選取、替換、刪除等操作。sed命令列格式:sed [-nefri] 'range command' file如: sed '2d' aaa.txt # 刪除檔案aaa.txt中第二行[ sed工作流程: ]使用vim這種螢幕編輯器編輯一個檔案的時候, 我們需要把這個檔案開啟, 這裡存在兩個問題:1. 開啟一個比較大的檔案會消耗很多記憶體。2.
Time of Update: 2017-02-27
用C提供的取隨機數的方法srand和rand, 前者是給後者設定隨機數種子seed。int rnd_num = 0;srand(seed); // time(NULL) 通常使用時間做種子rnd_num = rand(); // 產生隨機數產生種子的方法:1. 使用日期時間時間作為種子很簡單,取當前日期和時間,但是存在一個陷阱:當多台機器並發執行產生隨機數時,出現相同隨機數的機率非常高。不推薦這種方式2.
Time of Update: 2017-02-27
以下指令碼把所有要編輯的源檔案備份到/bak目錄下,並且所有的路徑位置保持不變,比如vii /etc/hosts,則把/etc/hosts複製到/bak/etc/hosts。# cat /sh/vii#!/usr/bin/bash#判斷源檔案是否存在,存在才執行備份操作if [ -f "$1" ];then#建立函數,可實現任意鍵繼續#如果你的機器上不認stty raw那麼把函數中兩處出現的raw換成cbreakget_char(){SAVEDSTTY=`stty
Time of Update: 2017-01-18
方法一:複製代碼 代碼如下:echo `echo {a..z}``echo {A..Z}` > /tmp/letterfilewhile read -p "please input a letter: " letterdo ((`awk -v var="$letter" 'BEGIN{print length(var)}'` == 1)) && grep -q $letter /tmp/tmpfile && breakdonerm -f
Time of Update: 2017-01-18
指令碼內容:複製代碼 代碼如下:#!/bin/bashfor ip in `cat ip.lst`do./ssh.exp $ip > /dev/null 2&>1doneNK=`awk 'BEGIN{bs=4000000}/access/{if($1>bs){nk=NR-1;print nk}}' exp.log`for nnk in $NKdoawk -F"[@|']" 'NR=='"$nnk"' {print $2}'
Time of Update: 2017-01-18
此指令碼已經在ubuntu以及centos版本上測試通過,指令碼如下:複製代碼 代碼如下:#!/bin/bashLine='==========='#linux發行版名稱if [[ -f /usr/bin/lsb_release ]]; then OS=$(/usr/bin/lsb_release -a |grep Description |awk -F : '{print $2}' |sed 's/^[ \t]*//g')else OS=$(cat /etc/issue |sed -n
Time of Update: 2017-01-18
測試下預取的效果,利用CPU始終查看效果。根據實驗發現,預取地址在地址使用之前的十行左右代碼處效果比較好!複製代碼 代碼如下:#include <stdio.h>#define MAX_LEN 1000000static inline void prefetchnta(void *addr) //預取部分{ __asm__("movl %0, %%eax"::"a"(addr)); __asm__(".byte
Time of Update: 2017-01-18
我們有這樣一個字串:複製代碼 代碼如下:info='abcd;efgh'現在想擷取abcd和efgh,我們可以簡單地用cut工具來擷取:複製代碼 代碼如下:fstr=`echo $info | cut -d \; -f 1`sstr=`echo $info | cut -d \; -f 2`這裡主要是用了cut工具的-d和-f參數:-d:指定欄位的分隔字元,預設的欄位分隔符號為“TAB”; -f:顯示指定欄位的內容;關於cut工具其他參數可參考這裡:cut命令
Time of Update: 2017-01-18
A:本指令碼啟動並執行機器,LinuxB:待安裝JDK的機器, Linux首先在指令碼啟動並執行機器A上確定可以ssh無密碼登入到待安裝jdk的機器B上,然後就可以在A上運行本指令碼:複製代碼 代碼如下:$ ./install-jdk.sh B的IP or:複製代碼 代碼如下:$ ./install-jdk.sh "B的IP" "JDK的URI"
Time of Update: 2017-01-18
Linux
Time of Update: 2017-01-18
今天發現個可以檢測系統檔案完整性的shell指令碼,自己試了下還可以吧,介紹給大家。系統:centos 5.x指令碼內容:複製代碼 代碼如下:cat my_filecheck.sh#!/bin/bash## 變數首先聲明才能使用shopt -s -o nounset # 聲明 # 建立日期 Date=$(date +'%Y%m%d%H%M%S') #
Time of Update: 2017-01-18
介紹一個強大的分析網路的shell指令碼,此指令碼是從EZHTTP拆分出來的,覺得有必要單獨介紹下。指令碼運行效果截圖:此指令碼包含的功能有:1、即時監控任意網卡的流量2、統計10秒內平均流量3、統計每個連接埠在10秒內的平均流量,基於用戶端和服務端連接埠統計。可以看出哪些連接埠占流量比較大,對於web伺服器,一般是80連接埠。其它連接埠受到攻擊時,也有可能其它連接埠流量比較大。所以此功能可以協助我們連接埠流量是否正常。4、統計在10s內佔用頻寬最大的前10個ip。此項功能可以協助我們來查出是否
Time of Update: 2017-01-18
環境:ssh server: 192.168.100.29 server.example.comssh client: 192.168.100.30
Time of Update: 2017-01-18
今天在處理檔案時遇到個問題,當檔案名稱包含空格時,for迴圈就出問題了。例如,我在當前檔案夾下建立3個檔案名稱包含空格的檔案:複製代碼 代碼如下:keakons-MacBook-Pro:test keakon$ touch "test 1"keakons-MacBook-Pro:test keakon$ touch "test 2"keakons-MacBook-Pro:test keakon$ touch "test 3"keakons-MacBook-Pro:test keakon$
Time of Update: 2017-01-18
在迴圈過程中,有時候需要在未達到迴圈結束條件時強制跳出迴圈,Shell使用兩個命令來實現該功能:break和continue。break命令break命令允許跳出所有迴圈(終止執行後面的所有迴圈)。下面的例子中,指令碼進入死迴圈直至使用者輸入數字大於5。要跳出這個迴圈,返回到shell提示符下,需要使用break命令。 複製代碼 代碼如下:#!/bin/bashwhile :do echo -n "Input a number between 1 to 5:
Time of Update: 2017-01-18
與其他程式設計語言類似,Shell支援for迴圈。for迴圈一般格式為: 複製代碼 代碼如下:for 變數名 in 列表do command1 command2 ...
Time of Update: 2017-01-18
Shell case語句為多選擇語句。可以用case語句匹配一個值與一個模式,如果匹配成功,執行相匹配的命令。case語句格式如下:複製代碼 代碼如下:case 值 in模式1) command1 command2 ... commandN ;;模式2) command1
Time of Update: 2017-01-18
echo是Shell的一個內部指令,用於在螢幕上列印出指定的字串。命令格式: 複製代碼 代碼如下:echo arg您可以使用echo實現更複雜的輸出格式控制。顯示逸出字元複製代碼 代碼如下:echo "\"It is a test\""結果將是:"It is a test"雙引號也可以省略。顯示變數複製代碼 代碼如下:name="OK"echo "$name It is a test"結果將是:OK It is a test同樣雙引號也可以省略。如果變數與其它字元相連的話,需要使用大括弧({ }
Time of Update: 2017-01-19
首先,我們需要增加使用者對該指令碼的執行許可權,即複製代碼 代碼如下: String cmdstring = "chmod a+x test.sh"; Process proc = Runtime.getRuntime().exec(cmdstring); proc.waitFor(); //阻塞,直到上述命令執行完 cmdstring = "bash test.sh"; //這裡也可以是ksh等 proc =