Time of Update: 2014-05-13
標籤:shell指令碼 監控 系統 郵件此指令碼可以做一個定時的檢測,超出設定的值,即往郵箱發送警告指令碼用到bc,sendmail,163郵箱,yum install bc#!/bin/bash#System Monitoring Scriptwhile [ 1
Time of Update: 2014-05-08
下面的程式實現一個簡單的mp3播放功能,可以設定路徑對所有mp3檔案進行搜尋並順序播放。#!/bin/sh# very simple example shell script for mp3 player# 2014-5-6 by slwang#實現搜尋所有mp3檔案並順序播放歌曲path1=~/Musicpath2=~/Downloadstemp_file=/tmp/temp_files$$musicset=""menu_choice=""isnext=
Time of Update: 2014-05-05
寫程式的時候,適當地列印出一些進度或者日誌資訊常常能協助我們跟蹤程式的運行結果。但是,這些結果或者日誌資訊列印到螢幕上並不能作為以後檢查問題的依據。這就是重新導向的作用,寫程式的時候,我們可以方便的將相關的資訊列印到螢幕或者是從鍵盤接收輸入(這樣的好處就是避免直接操作檔案),利用重新導向我們可以很方便地將輸入輸出重新導向到檔案或者其它地方。1、檔案描述符(下面部分來自維基百科)檔案描述符(File
Time of Update: 2014-04-22
一:萬用字元* 代表『 0 個到無窮多個』任一字元樣本:找出 /etc/ 底下以 cron 為開頭的檔案名稱的檔案[root@instructor Desktop]# ls /etc/cron*/etc/cron.deny /etc/crontab/etc/cron.d:0hourly raid-check sa-update sysstat/etc/cron.daily:00webalizer cups makewhatis.cron prelink rhsmdcertwatch
Time of Update: 2014-04-20
shell程式設計(3)shell文法函數要定義一個shell函數,我們只需要簡單地寫出它的名字,然後是一對空括弧,再把有關的語句放在一對花括弧中,如下所示:function_name(){statements} 實驗:簡單的函數#!/bin/bashfoo(){echo“Function foo is executing”}echo “script starting”fooecho “script
Time of Update: 2014-03-31
5.2 Bash變數下面這些變數在Bash中設定或者使用,其他shell一般不會處理這些變數。Bash使用的一些變數也在其他章節介紹:例如,控製作業的工具使用的變數,請參看‘作業控制變數’。BASH執行當前Bash執行個體的全路徑名。BASHOPTS冒號分隔的已啟用的shell選項列表。列表中的每個單詞都是內建命令shopt -s
Time of Update: 2014-03-24
檔案類型:-f : 判斷檔案是否為普通檔案-d :判斷是否目錄-b :判斷是都塊裝置檔案-c :判斷是都字元裝置檔案-S :判斷是否socket檔案-p: 判斷是否管道檔案-h: 判斷是都為符號連結-L: 檔案存在且有符號連結檔案大小存在性:-e : 判斷檔案或者目錄是否存在-s : 檔案或者或者目錄存在且大小大於0檔案讀寫特性-r: 判斷檔案是否有可讀許可權-w:判斷檔案是否具有可寫入權限-x: 判斷檔案是否具有可執行檔許可權-g:判斷檔案是否具有sgid位-u:判斷檔案是否有suid位-k:
Time of Update: 2014-03-20
一、需求簡介經常在不同linux機器之間穿梭,如ssh登陸或scp拷檔案,每次總是要輸入密碼真是麻煩,這個問題可以通過ssh-keygen產生公開金鑰,在兩台機器之間互相建立信任通道即可。二、環境說明server1:192.168.10.221(伺服器受控端,主機名稱server1.com)server2:192.168.10.222(伺服器受控端,主機名稱server2.com)client1 :192.168.10.223(用戶端控制端,主機名稱itnul.com)client2 :192.
Time of Update: 2014-03-13
位置參數可以用shift命令左移。比如shift 3表示原來的$4現在變成$1,原來的$5現在變成$2等等,原來的$1、$2、$3丟棄,$0不移動。不帶參數的shift命令相當於shift 1。 非常有用的 Unix 命令:shift。我們知道,對於位置變數或命令列參數,其個數必須是確定的,或者當 Shell 程式不知道其個數時,可以把所有參數一起賦值給變數$*。若使用者要求 Shell 在不知道位置變數個數的情況下,還能逐個的把參數一一處理,也就是在 $1 後為 $2,在 $2 後面為 $3
Time of Update: 2014-03-09
1.shell中的函數定義格式為:function name(){#函數體}函數的定義必須遵循先定義在使用的原則,如定義函數print#!/bin/shfunction print(){if [ $# -lt 1 ]then print “no parameter”;return 1;else ehco “$1,$2”;return 0;fi}ehco “print function is being invoked”print上面的return 語句是函數的返回值
Time of Update: 2014-02-08
變數類型一直以為bash shell的變數是無類型的,其實也是可以指定類型的。Administrator@DADI ~$ declare -i num=10Administrator@DADI ~$ echo $num10Administrator@DADI ~$ num='iamaint'Administrator@DADI ~$ echo $num0通過declare的方法強制指定類型後,變數就不在接收非int的賦值操作。常量定義文法為:readonly OPTION
Time of Update: 2014-02-08
8.1 統計磁碟的使用方式 1 磁碟空間是一種有限資源 2 df和du是Linux中用於統計磁碟使用方式的重要命令,df是disk free的縮寫,du是disk usage的縮寫 3 找出某個檔案(或多個檔案)佔用的磁碟空間: du file1 file2 ... // 統計結果預設是以位元組作為計算單位
Time of Update: 2014-01-12
名稱:satool PS:可以讓同事門叫成了“傻兔”) 功能:此指令碼可以批量執行命令,拷貝檔案,簡易登入,無需記住應用伺服器具體IP即可快捷登入 說明:可以分組批量管理,單線程,不適用每組過百台裝置用也可以,就是等待返回結果時間長短問題) &
Time of Update: 2013-12-31
1.$0, $1, $2,等等:位置參數,從命令列傳遞給指令碼,或者是傳遞給函數.或者賦職給一個變數.以下用一個例子來說明這3個參數具體是什麼東西,讓讀者有一個感性的認識1)編寫shell指令碼#!/bin/bashecho " $0 hahah, $1 , $2"exit2)在命令列中輸入sh tt8.sh 10 12這時你會看到的運行結果是:tt8.sh hahah, 10 ,
Time of Update: 2013-12-28
最近一直在學習Shell,以前一直覺得Shell文法很難,不好學,現在總算有一些收穫了。其實Shell指令碼就是一堆linux命令的集合,把指令碼裡每一步的命令搞懂是什麼意思,然後整個指令碼的意思就搞出來了;同樣要通過指令碼完成一項工作,就把這項工作分解成若干的小命令,然後把小命令集合起來就可以了。至於什麼awk、sed、正則,都要靠自己平常的積累。 ①查詢一個服務某天的請求次數:cat renren-1.log|grep "MSG without parse">tempawk '{a[$
Time of Update: 2013-12-27
sh檔案在windows下修改後無法執行的解決方案因為大部分人使用的作業系統是windows,同時也因為windows的可視化介面做得比較人性化,所以在修改linux的一個sh檔案時,為了方便拉到window上用editplus編輯,上傳回linux去後,這個SH卻不能運行,錯誤提示是:: command not found。原因是CR/LF問題,在dos/window下按一次斷行符號鍵實際上輸入的是“斷行符號CR)”和“換行LF)”,而linux/unix下按一次斷行符號鍵只輸入“換行LF)”
Time of Update: 2013-12-27
在做訊號的捕捉之前需要先瞭解一下kill的使用方式:kill -l 查看訊號650) this.width=650;" title="kill-l.jpg" src="http://www.bkjia.com/uploads/allimg/131227/2315524596-0.jpg" alt="225340553.jpg"
Time of Update: 2013-12-27
for是shell編程很重要的迴圈語句:文法1:for 變數 in列表do action.....done列表: ①`seq 1 10` ##1-10 ②{1..10} ##1-10 ③/etc/rc.d/rc3.d/K* ##只要目錄下K開頭的檔案都會迴圈一次 ④`pgrep-uuser1` ##依次取使用者相應的一行進程迴圈指令碼:實現將指定user的進程都殺掉 #!/bin/bash # read -p "Please Enter the name:" user for i
Time of Update: 2013-12-27
# Linux LVM Tool完整版本: http://xin23.blog.51cto.com/1827266/1198836(update 2013.5.13)# 指令碼僅供交流學習使用!# 指令碼目前的版本為1.0.實現了物理卷的建立,移除,更改(啟用/禁用分配),掃描,查看功能.# 後續會補齊卷組和邏輯卷的管理,整合成一個Linux LVM TOOL.類似於AIX的SMIT.雖然,它只能管理LVM.# 指令碼已在Red Hat Enterprise Linux 5.4 6
Time of Update: 2013-12-27
批量備份多個資料庫#!/bin/bashBACKUP_HOST="localhost"BACKUP_USER="root"BACKUP_PASS="123456"BACKUP_DIR="/backup/mysql"BACKUP_DBNAME="one two three"COPIES=10MYSQLDUMP="mysqldump"TIMEPOINT=$(date +%Y-%m-