從一個程序監控指令碼學幾個Linux命令
首先來看看指令碼全貌
#!/bin/sh
curTime=`date +%Y%m%d-%H:%M`
count=1
nums=$(ps -ef | grep -E "zhudejun.*mainClass=Main" | grep -v grep | awk '{print $2}'| wc -w);
if [ $nums -lt $count ]
then
cd /home/zhudejun/recomMonitor/RecomMonitor
nohup mvn exec:java -Dexec.mainClass="Main" &
cd /home/zhudejun/recomMonitor/
echo "重啟服務"$curTime >> recomMonitor.log
fi
用到了ps
,grep
,awk
,wc
以及shell語法相關的一些知識.下面一一來看
ps命令
語法:ps (選項)
用於報告當前系統的程序狀態.用的太多了,就不細說了
grep命令
常用語法: pipe源 | grep (選項) pattern
grep (選項) pattern file_name
-o 只輸出文件中匹配到的部分
-v 反轉搜尋
-E 正則表示式
-i 大小寫忽略
awk命令
語法:awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file
awk是一種程式語言,用於在linux/unix下對文字和資料進行處理。
工作流程:
- 執行BEGIN{ commands }語句塊中的語句;
- 從檔案或標準輸入(stdin)讀取一行,然後執行pattern{ commands }語句塊,它逐行掃描檔案,從第一行到最後一行重複這個過程,直到檔案全部被讀取完畢。
- 當讀至輸入流末尾時,執行END{ commands }語句塊。
wc命令
語法:wc (選項)
wc命令用來計算數字。
-c或–bytes或——chars:只顯示Bytes數;
-l或——lines:只顯示列數;
-w或——words:只顯示字數。
linux預設變數
最後補充幾個linux中的變數
$# 是傳給指令碼的引數個數
$0 是指令碼本身的名字
$1 是傳遞給該shell指令碼的第一個引數
$2 是傳遞給該shell指令碼的第二個引數
$n 第n個引數
[email protected] 是傳給指令碼的所有引數的列表
$* 是以一個單字串顯示所有向指令碼傳遞的引數,與位置變數不同,引數可超過9個
$$ 是指令碼執行的當前程序ID號
$? 是顯示最後命令的退出狀態,0表示沒有錯誤,其他表示有錯誤
相關推薦
從一個程序監控指令碼學幾個Linux命令
首先來看看指令碼全貌 #!/bin/sh curTime=`date +%Y%m%d-%H:%M` count=1 nums=$(ps -ef | grep -E "zhudejun.*mainClass=Main" | grep -v grep | aw
[一天幾個linux命令] shell指令碼之正則表示式
shell指令碼之正則表示式 原文連結:Linux–shell指令碼之正則表示式 概念及特點 概念 正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定的字元、及這些特定字元的組合,組成一個"規則字串",這個"規則字串"用來表達對字串的一種過濾邏輯。規定一些特殊語
幾個Linux命令及指令碼使用中的奇淫巧技
例項1.建立一個別名,刪除原始檔案,同時在使用者的home目錄下backup中儲存副本。 #/bin/bash cp [email protected] ~/backup && rm -rf [email protected] 例項2.For
測試工作中經常用到的幾個Linux命令(第一彈)
ppi 問題 過程 哪些 工作 存在 隱藏文件 日誌 清空 自己平時測試工作中經常要在Linux下搭建測試環境,有涉及到啟動/終止服務器,修改tomcat配置文件,偶爾碰到端口被占用。。。 這時就不得不需要一些基本的Linux命令來處理遇到的這些問題(順便邁向裝B之旅) 1
[一天幾個linux命令] find
find 名稱 find - 在目錄樹中搜索檔案 使用 -name 正則表示式 基於檔名搜尋(檔案前的目錄會被忽略),正則與shell的正則一樣。因為檔案前的目錄會被忽略,所以查詢的檔名中永遠不要包括’/’,因此’-name a/b’查詢不到任何東西(你可能需要使用**-
最近專案裡用到的幾個Linux命令總結
最近在專案裡接觸到幾個常用的Linux命令,在此總結一下: su - 使用者名稱 切換到指定使用者 注意:- 跟使用者名稱之間需要有一個空格 cd 返回到登入時的目錄
超有趣的這幾個linux命令
這裡列舉的幾個沒有實際用處、 但很有趣的命令。它們的有趣並不是因為無用,而是真的有趣,接下來就讓我們看看它們是如何搞怪的吧。 一、cmatrix 你應該看過好萊塢大片《駭客帝國》,相信你會對電影中那些神奇的場景著迷。 在Neo的眼裡任何東西都能以計算機位元組流的形式展現,你是否也想做一個很有黑客範
[一天幾個linux命令] 改變檔案所屬使用者組,所有者 chgrp chown
修改檔案的所屬使用者組 chgrp 改變一個檔案的使用者組真的是很簡單,直接以chgrp來改變即可,這個命令就是change group的簡稱。不過,請記得,要改變的組名必須要在/etc/group檔案記憶體在才行,否則就會顯示錯誤 用法: ch
[一天幾個linux命令] Linux的賬號與群組
Linux的賬號與群組 管理員的工作中,相當重要的一環就是“管理賬號”啦!因為整個系統都是你在管理的,並且所有一般使用者的賬號申請,都必須要通過你的協助才行!所以你就必須要了解一下如何管理好一個伺服器主機的賬號啦!在管理Linux主機的賬號時,我們必須先來了解
一個優秀的程序員該有的幾個好習慣
nbsp sdn 函數 程序員 問題 很好 學習 視野 自己的 1. 看到下次還經常用的函數代碼就會封裝,然後保存; 註意這裏提到的,先封裝到一個類中,這樣就能避免每段代碼都保存到一個文件中,下次使用時可以直接拷這個類使用; 2. 系統地學習的時候,多看業內大牛的博客,這樣
初學Windows應用程序開發遇到的幾個專業名詞解釋
程序編譯 理論 文件 微軟 文件的 開發環境 環境 com pos 1、.NET Framework Visual Studio.NET程序開發環境是微軟開發的基於.net 架構的Windows應用程序開發工具,它支持VB.NET、C/C++、C#、Java等編程語言,提供
技術好卻進不了大公司?iOS程序員面試的幾個小技巧你可要收好了
朋友 知識 了解 一點 今天 刪除 就會 為什麽 年輕 前言: 有很多程序員,專業技術挺好,項目經驗充足,簡歷上金碧輝煌,也面試了很多國內大廠,但就是沒有一家能成功的。處境可以說是相當尷尬。 大家都知道程序員本身就是要吃年輕飯,不僅是技術活,也是體力活。早點跳槽,早點漲薪,
php中一個字符占用幾個字節?
php先看看字符與字節有什麽區別:(一)“字節”的定義字節(Byte)是一種計量單位,表示數據量多少,它是計算機信息技術用於計量存儲容量的一種計量單位。(二)“字符”的定義字符是指計算機中使用的文字和符號,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。數字、字母等符號都是字符,字符只占一個
【14】程序監控指令碼-getRSSMem.sh
# get size of java process RSS memory PName=$1 #echo $PName if [ "$PName" != "" ];then a=`ps aux | grep $PName | grep -v grep | grep -v z
【13】程序監控指令碼-getPID.sh
#!/bin/bash # get size of java process PID PName=$1 #echo $PName if [ "$PName" != "" ];then pid=`ps aux | grep $PName | grep -v grep
【11】程序監控指令碼-getHandle.sh
# get size of java process handles PName=$1 #echo $PName if [ "$PName" != "" ];then a=`ps aux | grep $PName | grep -v grep | grep -v zabb
【10】程序監控指令碼-getCPUPer.sh
#!/bin/bash # get size of java process CPU% PName=$1 #echo $PName if [ "$PName" != "" ];then a=`ps aux | grep $PName | grep -v grep |
[遞迴] 排列組合 - 從一個字串中任意選取N個元素構成的所有排列組合 - C語言
排列組合 【題目】求從字串中"ABCD"中任取3個元素構成的所有排列組合 A
用shell指令碼增加幾個組,並在每個組裡建立一定的使用者
昨天我們用語言寫了一個關於使用者組和使用者的簡單應用,但是說實話,就九個使用者我已經重複的很煩惱了,於是我就想能不能通過shell指令碼來實現批量增加使用者。於是乎,我今天就想著用shell指令碼去完成昨晚的例子。我們先來回顧一下昨天的例子。 題目:建立幾個組,每個組有一定的成員,並且每個組有一個可以操作的
從一個正常人變成程式猿兩個多月的規劃
首先 不多說啥 今天剛剛在戴爾軟體技術部辭職 心情格外好 由衷的感覺 因為我知道自己不適合售後服