Linux常用shell指令碼
1.批量kill程序號
eth='5668 5673 7733 7738 10512 10517 12453 12458 17134 17139 18075 18080 20340 20345 21120'
for name in $eth
do
echo "Pid is $name"
echo "kill -9 $name"
kill -9 $name
done
2.通過程序名killps -ef| grep tomcat|awk '{print $2}'|xargs kill -9
3.查詢所有的java進行,然後打印出來4./home目錄裡面有data目錄,data目錄裡面有a、b、c、d、e五個目錄,現在要把data目錄裡面除過e目錄之外的所有目錄拷貝到/bak目錄中pidlist=`ps -ef|grep java |grep -v "grep" |awk '{print $2}'` if [ "$pidlist" = "" ] then echo "no java process alive" else for pid in ${pidlist} { echo "java process is: $pid:" } fi
5.一鍵啟停服務(需要服務結構都一致)方法一:終端命令列下執行以下命令 cp -R `find /home/data -type d -path /home/data/e -prune -o -print | sed 1d ` /bak ######################################################## 指令碼實現 指令碼存放路徑/home/osyunwei.sh vi /home/osyunwei.sh #編輯指令碼,新增下面的程式碼 #!/bin/sh cp -R `find /home/data -type d -path /home/data/e -prune -o -print | sed 1d ` /bak chmod +x /home/osyunwei.sh #新增指令碼執行許可權 cd /home #進入指令碼存放目錄 ./osyunwei.sh #執行指令碼 ######################################################## 方法二:使用cp命令複製的時候,只能排除一個目錄不被複制,如果想排除兩個或者多個目錄的話,就需要使用rsync命令來實現了,看下面的例子 如果要排除/home/data目錄下面的a、b、c、三個目錄,同時拷貝其它所有目錄,執行以下命令 yum install rsync #安裝rsync rsync -av --exclude data/a --exclude data/b --exclude data/c data /bak 注意:--exclude後面的路徑不能為絕對路徑,必須為相對路徑才可以,否則出錯。 ----------------------------------------------------------------------------
6.查詢配置檔案進行替換#!/bin/sh echo "一鍵啟停10.39服務" command=$1 if [ $# -ne 1 ] then echo "usage: $0 stop|start" exit fi server_list="pluto-ps-server-new pluto-ps-support-server pluto-ps-company-new" echo "**********$command 服務**********" for name in $server_list do echo "######$command $name ######" server_name=/data/$name/bin/server.sh #echo "/bin/bash $server_name $command" /bin/bash $server_name $command echo "等待3秒" sleep 3 process_number=`ps -ef | grep /data/$name | grep -v 'grep'| wc -l` #echo "$name 程序數:$process_number" processId=`ps -ef | grep /data/$name | grep -v 'grep' | awk '{ print $2 }'` for ID in $processId do echo "processID:$ID" done if [ $process_number -eq 1 ];then echo "$name 服務已啟動" elif [ $process_number -eq 0 ];then echo "$name 服務已停止" else echo "$name 已開啟多個程序,請確認服務是否正常" fi done echo "**********$command 服務結束**********"
#!/bin/bash
if [ $# != 1 ] ; then
echo "請輸入檔案路徑 eg: 目標路徑"
exit 1;
fi
project=$1
Filepath=/data/$1/conf/env
WebPath=/data/$1/WEB-INF/classes
echo "配置檔案目錄:$Filepath"
remoting=remoting.properties
if [ -d "$WebPath" ];then
cd $WebPath
echo "替換目錄:$WebPath"
if [ -f "$remoting" ]; then
echo "替換$remoting檔案的配置"
find $Filepath -name $remoting | xargs sed -ri 's/rabbit.address=([0-9]{1,3}\.){3}[0-9]{1,3}/rabbit.address=192.168.10.59/g'
find $Filepath -name $remoting | xargs sed -i 's/rabbit.username=.*/rabbit.username=it/g'
find $Filepath -name $remoting | xargs sed -i 's/rabbit.password=.*/rabbit.password=its123/g'
find $Filepath -name $remoting | xargs sed -i 's/virtualhost=.*/virtualhost=\//g'
find $Filepath -name $remoting | xargs sed -i 's/virtual=.*/virtual=\//g'
#檔案伺服器
find $Filepath -name $remoting | xargs sed -ri 's/server=([0-9]{1,3}\.){3}[0-9]{1,3}/server=192.168.10.59/g'
find $Filepath -name $remoting | xargs sed -i 's/user=.*/user=it/g'
find $Filepath -name $remoting | xargs sed -i 's/password=.*/password=its123/g'
fi
fi
7.遠端拷貝將192.168.10.55機器上面/data/pluto-is/lib下面的檔案拷貝到本地/data/pluto-is/lib下面
[[email protected] venus-web-fin]# scp [email protected]:/data/pluto-is/lib/* /data/pluto-is/lib/
8.Linux shell判斷檔案和資料夾是否存在myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"
#這裡的-d 引數判斷$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi
#這裡的-f引數判斷$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
9.通過埠檢視應用程式(例如:查詢6028埠)
ps -ef | grep `netstat -anpl | grep 6028 | awk NR==1'{ print $7 }' | grep -o "[0-9]*[0-9]" `
相關推薦
Linux常用Shell指令碼珍藏
我們在運維中,尤其是linux運維,都知道指令碼的重要性,指令碼會讓我們的 運維事半功倍,所以學會寫指令碼是我們每個linux運維必須學會的一門功課,這裡收藏linux運維常用的指令碼。如何學好指令碼,最關鍵的是就是大量的練習 和實踐。根據以下指令碼我們可以拓展,這樣我們提高
Linux常用shell指令碼
1.批量kill程序號eth='5668 5673 7733 7738 10512 10517 12453 12458 17134 17139 18075 18080 20340 20345 21120' for name in $eth do
linux和shell指令碼常用命令技巧
date :調配時間,可以用date命令完成很多需求,比如日誌資料夾,比如求前幾天等等,其他常用方法百度 date "+%Y%m%d" #輸出年月日 date -d last-day +%Y%m%d #輸出當然日期的前一天 #########################
Linux運維常用shell指令碼之使用者管理例項
1、用shell指令碼批量建立Linux使用者 實現要求:建立使用者student1到student50,指定組為student組!而且每個使用者需要設定一個不同的密碼! #!/bin/bash for i in `seq 1 50` do useradd -G
Linux常用shell腳本
format echo 用戶名 util iss bin ecif argument pla 在運維中,尤其是linux運維,都知道腳本的重要性,腳本會讓我們的 運維事半功倍,所以學會寫腳本是我們每個linux運維必須學會的一門功課,如何學好腳本,最關鍵的是就是大量的練習
Linux系統——shell指令碼
shell指令碼程式設計 作用:通過命令列解析的方式,自動執行設定好的程式或命令程式碼。(若將指令碼掛到定時任務中,就會自動在非工作時間裡自動觸發執行程式) Shell指令碼檔案以“.sh”結尾 規範的Shell指令碼第一行會指出由哪個程式
Linux系統——shell指令碼應用示例
傳入一個網段地址,自動找出本網段記憶體活的IP地址。2,將存活的IP地址當作密碼來建立Linux使用者,使用者名稱格式為:你的名字_數字 3,有幾個存活IP地址,就自動建立幾個使用者 4,最後將建立的使用者名稱和密碼寫入到/tmp目錄下的某檔案裡 (1)找存活的ip (2)將ip去
【linux】shell指令碼除錯技術
在使用gcc編譯keepalived原始碼的時候,需要執行configure生成Makefile,然後用make命令編譯。但是在這個過程中,configure檔案卻一直無法掃描到一個已經安裝的三方庫。無奈,只能檢視configure原始碼。configure其實就是一個shell指令碼,為了
[一天幾個linux命令] shell指令碼之正則表示式
shell指令碼之正則表示式 原文連結:Linux–shell指令碼之正則表示式 概念及特點 概念 正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定的字元、及這些特定字元的組合,組成一個"規則字串",這個"規則字串"用來表達對字串的一種過濾邏輯。規定一些特殊語
Linux/Unix shell 指令碼中呼叫SQL RMAN指令碼
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
10 個實戰及面試常用 Shell 指令碼編寫
注意事項 1)開頭加直譯器:#!/bin/bash 2)語法縮排,使用四個空格;多加註釋說明。 3)命名建議規則:變數名大寫、區域性變數小寫,函式名小寫,名字體現出實際作用。 4)預設變數是全域性的,在函式中變數local指定為區域性變數,避免汙染其他作用域。 5)有兩個命令能幫助我除錯指令碼:set -e
10 個面試及實戰常用 Shell 指令碼
注意事項 1)開頭加直譯器:#!/bin/bash 2)語法縮排,使用四個空格;多加註釋說明。 3)命名建議規則:變數名大寫、區域性變數小寫,函式名小寫,名字體現出實際作用。 4)預設變數是全域性的,在函式中變數local指定為區域性變數,避免汙染其他作用域。 5)有兩個命令能幫助我除錯指令碼:se
Linux下shell指令碼報錯 [: test: unexpected operator
最近編譯 ssd的create_list.sh指令碼遇到 [: test: unexpected operator的問題, 後來發現是由於 []等問題引起的,查閱資料發現是 Linux預設sh連結到dash的,和bash不相容, dash應該也是和bash相似的一種shell指令碼
Linux基礎--shell指令碼(1)
shell程式設計: 主要指令碼維護,用於偵聽使用者輸入指令,接受到這些指令,執行相應操作。 指令可以執行,靠的是shell環境變數 設定環境變數 &nbs
Linux之Shell指令碼程式設計
Shell概念 一、概念 Shell 是一個用 C 語言編寫的程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心 的服務。Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一
Linux基礎--shell指令碼(5)
================================ while 迴圈 init while [ con ] do &n
Linux基礎--shell指令碼(4)
判斷語句 格式五 if [ con1 ] then cmd1 elif
Linux基礎--shell指令碼(3)
選擇結構 格式一: if [ con ] then &nb
Linux基礎--shell指令碼(2)
實現shell指令碼 1 建立指令碼檔案 touch file.sh 2 實現指令碼
Linux的Shell指令碼——day5——sed非互動文字編輯
cp 路徑/檔名{,.bak} == cp 路徑/檔名 路徑/檔名.bak 修改配置前做好備份 sed 前置命令 | sed [選項] '條件指令' 把前面的命令的輸出結果進行編輯操作 sed [選項] '條件指令'