Linux運維常用指令碼命令

2021-08-02 19:26:28 字數 2875 閱讀 1376

1)開頭加直譯器:#!/bin/bash

2)語法縮排,使用四個空格;多加注釋說明。

3)命名建議規則:變數名大寫、區域性變數小寫,函式名小寫,名字體現出實際作用。

4)預設變數是全域性的,在函式中變數local指定為區域性變數,避免汙染其他作用域。

5)有兩個命令能幫助我除錯指令碼:set -e 遇到執行非0時退出指令碼,set-x 列印執行過程。  

6)寫指令碼一定先測試再到生產上。

(1)ps aux    顯示系統全部程序,一行乙個

(2)grep 「abc」 從標準輸入讀取字元流,輸出包含字串「abc」的行

(3)grep -v "acb"   從標準輸入讀取字元流,輸出不包含字串「abc」的行

(4)wc -l        從標準輸入讀取字元流,輸出行數

例如需要檢測程序httpd是否存在,操作流程如下:

(1)讀取系統所有程序

(2)判斷包含指定程序名字的資訊是否存在

通過管道連線,命令如下:

所有程序-->獲取包含「httpd」的行-->刪除grep程序資訊-->輸出最後的行數

通過判斷命令的執行結果是否為 0 ,可以知道程序是否存在。

指令碼如下:

在日常工作過程中,經常要對伺服器進行一些操作,整理了一些常用的一句話shell命令。

1、查詢當前目錄下占用為0位元組的檔案並刪除

find ./ -type f -size 0 -exec rm -rf {}\;    #此命令不要用於對根目錄0位元組檔案的操作

2、將系統程序按記憶體占用大小排列顯示出來

ps -e  -o 「%c   : %p : %z : %a」|sort -k5-nr   

3、將系統程序按cpu占用大小排列顯示

ps -e  -o 「%c   : %p : %z : %a」|sort   -nr

4、匹配某檔案中某一行並進行內容替換

sed -i 『/root/s/no/yes』/ etc/ssh/sshd_config    #先匹配到root,再將此行no替換為yes

5、顯示所有執行級別為3並開機啟動的服務

ls /etc/rc3.d/s* |cut -c 15-    #rc3.d中s開頭即為執行級別3的服務,並用cut擷取第15個字元後面的內容

6、取得eth0網絡卡的ip位址 

方法1:ifconfig   | grep 『inet addr:』| grep -v 』127.0.0.1′ | cut -d:-f2 | awk 『』

方法2:ifconfig eth0 |grep 「inet addr:」 |awk 『』|cut -c 6-

方法3: ip addr |grep "inet"|awk ''| awk -f "/" ''

7、tcp抓包工具分析80埠資料流

tcpdump -c 10000 -i eth0 -n dst port 80

8、查詢昨天的日期

date –date=yesterday

9、刪除所有空目錄

find /data -type d -empty -exec rm -rf {};    #最好不要在/目錄下執行此命令

10、刪除5天前的檔案

find /data -mtime +5 -type f -exec rm -rf{};

11、強制踢出終端使用者

pkill -kill -t pts/1

12、將來自80埠的請求**到8080埠

iptables -a prerouting -p tcp -m tcp –dport80 -j dnat –to-destination 127.0.0.1:8080

13、linux伺服器之間傳檔案

scp ~/[email protected]:/data/    #將個人主目錄下test.txt傳到遠端主機的/data目錄下

14、對大檔案進行分割

split -l 1000 message.log message    #按每個檔案1000行來分割

split -b 5m message.log message    #按每個檔案5m來分割

15、殺掉80埠相關的程序

lsof -i :80|grep -v "pid"|awk ''|sh

Linux運維基本命令詳解

ls命令 ls a 列出目錄所有檔案,包含以.開始的隱藏檔案 ls a 列出除.及.的其它檔案 ls r 反序排列 ls t 以檔案修改時間排序 ls s 以檔案大小排序 ls h 以易讀大小顯示 ls l 除了檔名之外,還將檔案的許可權 所有者 檔案大小等資訊詳細列出來 mkdir命令 在這裡插入...

Linux運維常用指令碼整理

1 查詢當前目錄下占用為0位元組的檔案並刪除 find type f size 0 exec rm rf 此命令不要用於對根目錄0位元組檔案的操作 2 將系統程序按記憶體占用大小排列顯示出來 ps e o c p z a sort k5 nr 3 將系統程序按cpu占用大小排列顯示 ps e o c...

常用Linux運維命令

1 檢視tcp連線狀態 netstat nat awk sort uniq c sort rn netstat n awk tcp end netstat n awk tcp end netstat n awk tcp end netstat n awk tcp sort uniq c sort r...