運維常用工具命令/知識總結

目錄

一、linux進程常用命令

1、top、chkconfig、ps

2、systemctl(centos 7版本命令)

3、firewalld命令(詳解已更新)

二、linux磁盤常用命令

1、df、du、free、fdisk、blkid、mount...

三、日誌

1、linux日誌文件

2、Linux日誌分析常用基本工具命令(less/more/tail/head)

四、用戶密碼

1、chage 查看用戶密碼是否過期

2、與用戶相關的配置文件

3、用戶分類

4、用戶登錄出現問題如何處理

5、查詢用戶的操作(last、history)

五、常用服務端口

六、跟網絡有關的命令工具

1、不同系統重啓網絡服務命令

2、ping、netstat、traceroute、telnet、tcpdump(抓包)、curl、tracepath

3、跳板機無法遠程連接虛機排錯方法

七、其他

1、crontab、date

2、客戶端同步ntp服務器時間

未完待續~



一、linux進程常用命令

1、top、chkconfig、ps

  • top

查看cpu負載、正在運行的進程信息、內存使用信息

  • chkconfig

用於設定系統的各種服務,例如設置crontab服務開機自啓:chkconfig –level 35 crond on

  • ps

命令默認情況下,只會顯示運行在當前控制檯下的屬於當前用戶的進程

ps命令的常用參數有:

  • -e,-A 顯示所有進程
  • -f 顯示完整格式的輸出
  • -l 顯示長列表
  • -a,所有進程,加上-x參數會顯示沒有控制終端的進程
  • -u username,顯示指定用戶的進程,例如ps -u ltc
  • -aux 按照CPU或者內存用量來篩選進程,例如ps -aux --sort -pcpups -aux --sort -pmem
  • -C cmdlist,顯示包含在cmdlist列表中的進程,例如ps -C test
  • -L 顯示進程中的線程,例如ps -L 123,123爲進程ID
  • -j 顯示任務信息
  • -H 用層級顯示進程,樹狀結構

2、systemctl(centos 7版本命令)

systemctl是centos7版本的命令,類似於之前版本的services,用於啓動/關閉服務、查詢服務狀態等

systemctl start/stop/restart firewalld 更改防火牆的狀態

systemctl list-unit-files     查詢所有系統服務

3、firewalld(centos 7防火牆命令)

firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好處有兩個:支持動態更新,不用重啓服務;第二個就是加入了防火牆的“zone”概念。

firewalld跟iptables比起來至少有兩大好處:

firewalld可以動態修改單條規則,而不需要像iptables那樣,在修改了規則後必須得全部刷新纔可以生效。 
firewalld在使用上要比iptables人性化很多,即使不明白“五張表五條鏈”而且對TCP/IP協議也不理解也可以實現大部分功能。 
firewalld自身並不具備防火牆的功能,而是和iptables一樣需要通過內核的netfilter來實現,也就是說firewalld和 iptables一樣,他們的作用都是用於維護規則,而真正使用規則幹活的是內核的netfilter,只不過firewalld和iptables的結 構以及使用方法不一樣罷了。

 etc/sysconfig/firewalld  防火牆配置文件 

防火牆命令:

# 安裝firewalld
yum install firewalld firewall-config


systemctl start  firewalld # 啓動
systemctl status firewalld # 或者 firewall-cmd --state 查看狀態
systemctl disable firewalld # 停止
systemctl stop firewalld  # 禁用

# 關閉服務的方法
# 你也可以關閉目前還不熟悉的FirewallD防火牆,而使用iptables,命令如下:

systemctl stop firewalld
systemctl disable firewalld
yum install iptables-services
systemctl start iptables
systemctl enable iptables

 配置firewalld

firewall-cmd --version  # 查看版本
firewall-cmd --help     # 查看幫助

# 查看設置:
firewall-cmd --state  # 顯示狀態
firewall-cmd --get-active-zones  # 查看區域信息
firewall-cmd --get-zone-of-interface=eth0  # 查看指定接口所屬區域
firewall-cmd --panic-on  # 拒絕所有包
firewall-cmd --panic-off  # 取消拒絕狀態
firewall-cmd --query-panic  # 查看是否拒絕

firewall-cmd --reload # 更新防火牆規則
firewall-cmd --complete-reload
# 兩者的區別就是第一個無需斷開連接,就是firewalld特性之一動態添加規則,第二個需要斷開連接,類似重啓服務


# 將接口添加到區域,默認接口都在public
firewall-cmd --zone=public --add-interface=eth0
# 永久生效再加上 --permanent 然後reload防火牆

# 設置默認接口區域,立即生效無需重啓
firewall-cmd --set-default-zone=public

# 查看所有打開的端口:
firewall-cmd --zone=dmz --list-ports

# 加入一個端口到區域:
firewall-cmd --zone=dmz --add-port=8080/tcp
# 若要永久生效方法同上

# 打開一個服務,類似於將端口可視化,服務需要在配置文件中添加,/etc/firewalld 目錄下有services文件夾,這個不詳細說了,詳情參考文檔
firewall-cmd --zone=work --add-service=smtp

# 移除服務
firewall-cmd --zone=work --remove-service=smtp

# 顯示支持的區域列表
firewall-cmd --get-zones

# 設置爲家庭區域
firewall-cmd --set-default-zone=home

# 查看當前區域
firewall-cmd --get-active-zones

# 設置當前區域的接口
firewall-cmd --get-zone-of-interface=enp03s

# 顯示所有公共區域(public)
firewall-cmd --zone=public --list-all

# 臨時修改網絡接口(enp0s3)爲內部區域(internal)
firewall-cmd --zone=internal --change-interface=enp03s

# 永久修改網絡接口enp03s爲內部區域(internal)
firewall-cmd --permanent --zone=internal --change-interface=enp03s

 服務管理

 顯示服務列表  
Amanda, FTP, Samba和TFTP等最重要的服務已經被FirewallD提供相應的服務,可以使用如下命令查看:

firewall-cmd --get-services

# 允許SSH服務通過
firewall-cmd --enable service=ssh

# 禁止SSH服務通過
firewall-cmd --disable service=ssh

# 打開TCP的8080端口
firewall-cmd --enable ports=8080/tcp

# 臨時允許Samba服務通過600秒
firewall-cmd --enable service=samba --timeout=600

# 顯示當前服務
firewall-cmd --list-services

# 添加HTTP服務到內部區域(internal)
firewall-cmd --permanent --zone=internal --add-service=http
firewall-cmd --reload     # 在不改變狀態的條件下重新加載防火牆

 端口管理

# 打開443/TCP端口
firewall-cmd --add-port=443/tcp

# 永久打開3690/TCP端口
firewall-cmd --permanent --add-port=3690/tcp

# 永久打開端口好像需要reload一下,臨時打開好像不用,如果用了reload臨時打開的端口就失效了
# 其它服務也可能是這樣的,這個沒有測試
firewall-cmd --reload

# 查看防火牆,添加的端口也可以看到
firewall-cmd --list-all

直接模式

# FirewallD包括一種直接模式,使用它可以完成一些工作,例如打開TCP協議的9999端口

firewall-cmd --direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT
firewall-cmd --reload

控制端口 / 服務

          可以通過兩種方式控制端口的開放,一種是指定端口號另一種是指定服務名。雖然開放 http 服務就是開放了 80 端口,但是還是不能通過端口號來關閉,也就是說通過指定服務名開放的就要通過指定服務名關閉;通過指定端口號開放的就要通過指定端口號關閉。還有一個要注意的就是指定端口的時候一定要指定是什麼協議,tcp 還是 udp。知道這個之後以後就不用每次先關防火牆了,可以讓防火牆真正的生效。

firewall-cmd --add-service=mysql        # 開放mysql端口
firewall-cmd --remove-service=http      # 阻止http端口
firewall-cmd --list-services            # 查看開放的服務
firewall-cmd --add-port=3306/tcp        # 開放通過tcp訪問3306
firewall-cmd --remove-port=80tcp        # 阻止通過tcp訪問3306
firewall-cmd --add-port=233/udp         # 開放通過udp訪問233
firewall-cmd --list-ports               # 查看開放的端口

僞裝 IP

firewall-cmd --query-masquerade # 檢查是否允許僞裝IP
firewall-cmd --add-masquerade   # 允許防火牆僞裝IP
firewall-cmd --remove-masquerade# 禁止防火牆僞裝IP

端口轉發

          端口轉發可以將指定地址訪問指定的端口時,將流量轉發至指定地址的指定端口。轉發的目的如果不指定 ip 的話就默認爲本機,如果指定了 ip 卻沒指定端口,則默認使用來源端口。 如果配置好端口轉發之後不能用,可以檢查下面兩個問題:

  1. 比如我將 80 端口轉發至 8080 端口,首先檢查本地的 80 端口和目標的 8080 端口是否開放監聽了
  2. 其次檢查是否允許僞裝 IP,沒允許的話要開啓僞裝 IP
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080   # 將80端口的流量轉發至8080
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 # 將80端口的流量轉發至192.168.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 將80端口的流量轉發至192.168.0.1的8080端口
  1. 當我們想把某個端口隱藏起來的時候,就可以在防火牆上阻止那個端口訪問,然後再開一個不規則的端口,之後配置防火牆的端口轉發,將流量轉發過去。
  2. 端口轉發還可以做流量分發,一個防火牆拖着好多臺運行着不同服務的機器,然後用防火牆將不同端口的流量轉發至不同機器。

 

二、linux磁盤常用命令

1、df、du、free、fdisk、blkid、mount...

  • df

顯示磁盤分區可用磁盤空間,常用參數有:-h(以kb以上格式顯示數字)、-a(顯示全部)

  • du

查看文件或目錄的磁盤使用空間:

  • free

查看系統內存和swap分區使用情況:-b,-k,-m,-g參數表示數據以什麼單位顯示

  • fdisk

命令給磁盤分區,查詢磁盤分區情況,常用參數-l(列出所有分區信息),分區內置參數:n(新建分區)、p(顯示硬盤所有分區)、t(轉換分區格式)、w(保存分區並退出)

  • blkid

主要用來對系統的塊設備(包括交換分區)所使用的文件系統類型、LABEL、UUID進行查詢

  • mount

主要用於文件系統掛載,常用參數有-o(異步模式、同步模式)、-t(要掛載的文件系統類型)

三、日誌

1、linux日誌文件

  • 存放日誌文件目錄:/var/log
  • /var/log/messages — 包括整體系統信息,其中也包含系統啓動期間的日誌。此外,mail,cron,daemon,kern和auth等內容也記錄在var/log/messages日誌中。
  • /var/log/boot.log — 包含系統啓動時的日誌
  • /var/log/dpkg.log – 包括安裝或dpkg命令清除軟件包的日誌
  • /var/log/daemon.log — 包含各種系統後臺守護進程日誌信息。
  • /var/log/kern.log – 包含內核產生的日誌,有助於在定製內核時解決問題。
  • /var/log/lastlog — 記錄所有用戶的最近信息。
  • /var/log/user.log — 記錄所有等級用戶信息的日誌。
  • /var/log/cron — 每當cron進程開始一個工作時,就會將相關信息記錄在這個文件中。
  • /var/log/mail/ –  這個子目錄包含郵件服務器的額外日誌。

2、Linux日誌分析常用基本工具命令(less/more/tail/head)

  • less/more 常用於日誌文件閱讀, less可上下翻頁、more只能下翻頁、Q退出閱讀。
  • tail/head  常用於日誌文件閱讀,tail從文件末尾取幾行顯示、head從文件首取幾行閱讀,常用格式:cat /var/log/boot.log | tail -n 20 

四、用戶密碼

1、chage 查看用戶密碼是否過期

常用命令格式:chage -l root;

  • last password change 密碼最後一次的修改日期
  • password expires 密碼到期時間
  • password inactive 密碼失效時間
  • account expires 賬戶到期時間

chage的參數包括 :
-m 密碼可更改的最小天數。爲零時代表任何時候都可以更改密碼。 
-M 密碼保持有效的最大天數。 
-W 用戶密碼到期前,提前收到警告信息的天數。 
-E 帳號到期的日期。過了這天,此帳號將不可用。 
-d 上一次更改的日期 
-i 停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用。 
-l 例出當前的設置。由非特權用戶來確定他們的密碼或帳號何時過期。

2、與用戶相關的配置文件

[root@svn /]# ll /etc/passwd /etc/shadow /etc/group /etc/gshadow
-rw-r--r-- 1 root root  594 Jul  3 14:01 /etc/group     #——>用戶組的信息
---------- 1 root root  484 Jul  3 14:01 /etc/gshadow   #——>用戶組的密碼文件信息
-rw-r--r-- 1 root root 1091 Jul  3 13:56 /etc/passwd    #——>用戶的信息

3、用戶分類

①超級用戶:root,UID爲0

②普通用戶:centos 7以前版本,UID是500-65535的用戶,centos7中UID是1000-65535的用戶

③虛擬用戶:centos 7以前版本,UID在1-499的用戶,centos7中UID在1-999,一般不能登錄,滿足文件或服務啓動的需要,/sbin/nologin

4、用戶登錄出現問題如何處理

[root@svn ~]# su - oldboy
-bash-4.1$ 
-bash-4.1$ 
解答:原因是這個oldboy用戶家目錄下的環境變量文件被刪除了,只需到/etc/skell/目錄下,複製
.bash_profile
.bashrc到當前用戶下,然後重新登錄oldboy用戶即可

5、查詢用戶的操作(last、history)

liinux系統中last查詢用戶登錄歷史、history查詢用戶使用過的操作命令

Windows 從任務管理器中查看用戶再登情況

五、常用服務端口

  • ssh--22
  • 1521--oracle
  • 443--https
  • 80--http

六、跟網絡有關的命令工具

1、不同系統重啓網絡服務命令

  • 紅帽:/etc/rc.d/init.d/network restart
  • centos 6:service network restart
  • centos 7:systemctl restart network
  • windows08:service network restart
  • ubuntu:service network-manager restart

2、ping、netstat、traceroute、telnet、tcpdump(抓包)

  • ping 常用參數

 -l   定義發送數據包的大小,默認情況下是32字節,利用它可以最大定義到65500字節 

-n  定義向目標地址發送數據包的次數

-t   表示不間斷向目標地址發送數據包,直到我們強迫其停止

  • tcpdump是一個抓包工具命令,需要用yum安裝後使用,

yum install tcpdump  安裝

tcpdump -i ens33  抓取網卡ens33(centos 7中稱ens33,centos6.5稱eth0)包

  • telnet遠程連接工具

常用格式:telnet +IP 或者 telnet + IP + 端口

例如:telnet 10.16.0.23                      telnet 10.16.0.23 1521(端口號)

 

  • traceroute路由跟蹤 (centos 7無此命令,需要yum安裝traceroute包:yum install traceroute)

如果用traceroute -q 4 www.58.com,表示向每個網關發送4個數據包。有時我們traceroute一臺主機時,會看到有一些行是以星號表示的。出現這樣的情況,可能是防火牆封掉了ICMP的返回信息,所以我們得不到什麼相關的數據包返回數據。有時我們在某一網關處延時比較長,有可能是某臺網關比較阻塞,也可能是物理設備本身的原因。當然如果某臺DNS出現問題時,不能解析主機名、域名時,也會 有延時長的現象;您可以加-n參數來避免DNS解析,以IP格式輸出數據。

  • netstat 監聽端口(centos 7無此命令,需要yum安裝net-tools包)

常用命令格式:

netstat -nat 查看正在監聽的端口狀態

netstat -ntlp  查看udp協議端口和在此端口開啓的進程

netstat -nulp  查看udp協議端口和在此端口開啓的進程

netstat -a 查看所有端口

3、跳板機無法遠程連接虛機排錯方法

  • 查看遠程連接端口有沒有打開
  • 打開虛機的遠程設置(若虛機爲window08)
  • 查看虛機的防火牆設置
  • 虛機ping跳板機看通不通,不通的話排查網卡
  • 虛機嘗試用telnet命令遠程連接跳板機(若虛機爲Linux)

七、其他

1、crontab、date

  • crontab 

crontab週期性任務,常用參數:

-e:編輯某個用戶的crontab文件內容。

-l:顯示某個用戶的crontab文件內容,

-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。

格式如下:* * * * * +命令,前五個字段代表的意思是 分、時、日、月、周

與crontab相關的文件:

/etc/cron.deny  不允許使用crontab服務的用戶名單

/etc/cron.allow  允許使用crontab服務的用戶名單

/var/spool/cron 存放crontab文件的目錄,以用戶命名

~注,有些系統默認沒有crontab服務,此時需要用yum安裝:yum install crontabs;  /sbin/service crond start //啓動服務

  • date

date 查看本地時間

date -s 18:09:01 臨時更改本地時間

date -s 991128 設置時間爲1999年11月28號     

date -s "2008-08-08 12:00:00" 設置時間偉2008年8月8號12:00

2、客戶端同步ntp服務器時間

1、客戶端必須有ntp服務,先用rpm -qa ntp*查詢是否安裝ntp服務

2、若系統沒有該服務,則yum安裝,yum install ntp

3、which ntpdate查詢ntpdate服務位置

  

4、加入定時任務:crontab -e編輯週期性,任務命令格式 */5 * * * * /sbin/ntpdate +域名或IP(世界時間域名time.nist.gov、time.windows.com、也可以是公司自己ntp服務器的域名或IP),

  

5、檢驗是否時間是否能同步:先更改當前時間date -s +時間;一個任務週期後看時間是否同步ntp服務   

未完待續~

本篇防火牆部分博文轉載地址 
https://blog.csdn.net/GMingZhou/article/details/78090963

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章