1. 程式人生 > >Linux學習第四章

Linux學習第四章

linux

5-1-1查看系統負載命令

命令 w或命令uptime

load average :a(1分鐘內系統的平均負載 ),b(5分鐘內),c(15分鐘內)

a:一分鐘內有多少個進程使用cpu

cat /proc/cpuinfo 顯示的processor的值就是cpu核數

a>核數 負載偏高


5-1-2vmstat詳解

命令vmstat 1 5 1秒顯示一次顯示5次

r 表示一秒鐘內平均多少進程使用cpu

b被阻塞的任務

swpd 交換內存 不變化 內存穩定

free 剩余內存

buff 剩余buff

cache 剩余cache

si :swap in 進入內存 不變化 內存穩定

so:swap out 從內存讀出來 不變化 內存穩定

bi 進入內存 讀磁盤 長期大於1000有問題

bo 從內存讀出來 寫磁盤

in 1秒內中斷次數

cs 1秒內上下文切換

us 用戶態進程占用cpu的百分比

sy內核態進程占用cpu百分比

id空閑的進程占用cpu百分比

wa等待的進程占用cpu百分比

st 被偷走的 百分比 一般都為0

重點關註 r b si so bi bo us


5-1-3top動態查看負載

命令 top

Cpu(s):us sy

PR、NI值越小 優先級越高 VIRT虛擬內存使用量 RES物理內存使用量 SHR共享內存 %Cpu %men(內存)TIME 使用cpu時間

q(退出)

top -bn1 靜態顯示

top -d1 -c 一秒刷新一次


5-1-4sar命令

sar -n DEV 1 10 一秒顯示一次 顯示10次 查看網卡流量

rxbyt/s 進網口流量 txbyt/s 出網口流量 byt 字節

1byt=8bit

帶寬=byt x8

計算使用帶寬=查看的txbyt的峰值 x 8

安裝sar

yum install -y sysstat

ls /var/log/sa 目錄下的sa文件都是生成的歷史網卡流量

sar -n -DEV -f /var/log/sa/sa20 查看sa20當天的網卡流量

sar -q 查看歷史負載

sar -b 查看磁盤

sar 查看cpu


5-1-5free查看內存

free 以k為單位

free -m 以兆為單位 -g 以g為單位

buffers 緩沖 速度比磁盤快 比cpu慢

cached 緩存空間大小


5-1-6ps查看進程

ps aus

ps -elf

vsz 虛擬內存使用量 RSS 物理內存 TTY 從哪裏啟動 ?是後臺的 COMMAND 進程名字

STAT 表示進程狀態 S休眠 s主進程 <優先級比較高 N優先級比較低 +前臺運行的進程 R 運行 L被鎖 l多線程進程 Z僵屍進程 X死掉的進程 T 暫停的進程 D 不能中斷的進程

ps aux |grep php 查看php進程有沒有啟動


5-1-7netstat查看網絡端口

netstat -lnp 查看監聽窗口

netstat -an 查看狀態

|grep 過濾

|grep -ic 過濾並統計數量


5-1-8抓包工具tcpdump和tshark

安裝tcpdump

yum install tcpdump

抓包 tcpdump -nn -c 100 抓100個包

tcpdump -nn -i eth1 抓eth1網卡, 不加-i默認抓eth0

tcpdump -nn port 22 只抓22端口的通信

加上tcp、ip等等也行 兩者用and 連接

-w 1.cap 把抓到的包的內容放入文件1.cap中

tcpdump 查看的ip是一個流向 -w是包的內容

tcpdump -nn -s0 抓到完整的包

安裝tshark

yum install -y wireshark

tshark 功能復雜 命令復雜


5-1-9selinux介紹

防火墻(有興趣可以加深研究)

cat /etc/selinux/config 配置文件

selinux關了對linux安全影響不大,開著可能會出現各種報錯

enforcing 完全打開

permissive 打開但不阻攔不報錯

disabled 關閉

getenforce 查看狀態

若selinux為enforcing狀態 可使用setenforce 0關閉

setenforce 1開啟


5-2-0iptables詳解-1

netfilter 防火墻 工具 iptables 表 filter、nat、mangle 鏈chain

iptables -t filter -nvL 查看filter表下的鏈、規則

-I 寫入規則 例如 iptables -t filter -I INPUT -p tcp --dport 80 -s 114.245.31.22 -j reject 進入INPUT鏈禁止80端口來源ip為114…地址的訪問,拒絕這個包

-D刪除規則

-A與-I類似 -I優先生效

iptables 不加-t默認進入filter表

三種處理方法- j reject、accept、drop


5-2-1 iptables詳解-2

iptables -Z 把表內的規則的數據清零 pkts和bytes

iptables -F 清空表內規則

service iptables save 保存規則 重啟後也不會丟失

iptables-save >1.ipt指定保存在1.ipt文件中

iptables-restore < 1.ipt 恢復


5-2-2iptable 詳解-3

表 filter nat mangle

nat 網絡地址轉換 類似路由器

mangle 給數據包打標記 然後根據標記操作包


5-2-3iptables詳解-4

chain主要用INPUT

-I 插入,規則最上,優先級最高

-A增加 ,規則最下,優先級最低

-D刪除

policy 鏈的總開關

-P 修改policy 例如 -P INPUT ACCEPT


5-2-4cron計劃任務

crontab -l 查看任務計劃

crontab -u user -l 查看user用戶的任務計劃

crontab -e 進入編寫計劃

時間、腳步、命令

* * * * *:min hour day mon week

*/5 * * * * 每天每隔5分鐘執行一次

30 1,12,18 * * * 每天1點30分、12點30分、18點30分執行

crontab文件位置 /var/spool/cron/用戶名


5-2-5系統服務

yum install -y ntsysv

ntsysv調整服務程序啟動

空格選擇是否

tab鍵切換到確定或取消欄

chkconfig --list 查看所有程序狀態 在後面加程序名,只看單個程序狀態

chkconfig 程序名 on 全部級別開啟

chkconfig 程序名 off 全部級別關閉

chkconfig --level 345 用戶名 on 開啟3、4、5級別

自己寫啟動腳步加入系統的服務列表

服務列表 /etc/init.d/

chkconfig --add 程序名 添加服務程序 --del 刪除


5-2-6linux日誌

核心日誌 /var/log/messages

cat/etc/logrotate.conf 進入日誌切割的配置文件

weekly 每周切割

rotate 4 保留4個

create 生成新的

dateext 以日期命名

compress 沒打開的 如果打開了會對日誌進行壓縮

ls /etc/logrotate.d/

cat /etc/logrotate.d/syslog 進入日誌切割的配置文件

postrotate 切割完成後進行的操作

kill -9 pid 強制性殺死進程pid

ls /var/log/wtmp 查看用戶登錄歷史的日誌

last 進行查看

/log/ btmp 無效的登錄歷史日誌

lastb 進行查看

/log/maillog 關於郵件日誌

/log/secure 關於驗證相關

/log/dmesg 關於硬件

dmesg也是一個命令 查看硬件信息


5-2-7xarg和exec詳解

有類似功能

管道

find /var/log/ -type f -mtime +10 -exec cp {}{}.bak\; 把log目錄下超過10天的文件找出 並拷貝成bak格式 原文件保留

-exec 改為|xargs -i cp{} {}.bak結果一樣

|xarg -i和-exec 承接前一指令的結果執行下一指令


5-2-8screen命令

nohup 表示命令不會中斷 生成nohup.out文件 收集進程的信息體制 讓進程一直在後臺運行

nohup +指令

screen 與nohup相似

yum install -y screen

screen 回車 創建了虛擬終端

top 回車 執行top指令

ctrl a+d 暫時退出,後臺運行

screen -ls 查看到在後臺跑的screen和screen id號

ctrl d 或者esc 斷開screen進程

screen -r +id號 進入指定的screen進程

可以連續創建screen

screen -S A 回車 創建的screen名為A


5-2-9curl命令

訪問外部 訪問網站 下載文件 類似wget指令

curl -I www.aminglinux.com 省略源代碼訪問頁面

HTTP/1.1 200 ok 200是狀態碼 常見狀態碼200,301,302,502等等

curl -x 代理

curl -O +地址 下載 -o A 改名為A

curl -Iv +網頁 詳細給出訪問步驟與信息

curl -u username:password +網址 訪問需要密碼的網頁


5-3-0rsync格式

同步數據 拷貝數據 支持網絡通信遠程拷貝

遠程ip A 本地ip B

rsync -av A:/tmp/1.txt /tmp/把遠程1.txt拷貝到本機tmp

rsync -av /tmp/1.txt A:/tmp/把本地的1.txt拷貝到遠程地址A的tmp目錄下

:通過sshd協議傳輸

::或:// 通過daemon 啟動服務監聽一個端口 讓客戶端去連本地

rsync -av A::模塊名/tmp/1.txt /tmp/ 用法用能與:一致


5-3-1rsync常用選項

5-3-2rsync選項詳解

rsync -av 111/ /tmp/322/ 把本地111目錄下所有文件同步到322目錄 記得加/

-avL 同步源文件

命令diff 對比文件差異

-avL --delete 保證兩個地址同步 一模一樣

-avLu 修改後不同步

-avLu --exclude=“a” 除了a文件不同步

-avLuP 顯示很多同步信息

-avLuPz 壓縮再拷貝 速度快 帶寬小


5-3-3rsync同步之ssh隧道方式

本機到遠程

ssh默認走22端口

-avPz -e “ssh -p 10022” 指定走10022端口同步

telnet +ip +端口號 查看端口是否開啟 按ctrl+】 再打quit 退出


5-3-4rsync後臺服務方式-1

後臺服務方式

寫配置文件 放在etc下 啟動後監聽一個端口 客戶端和服務端就能通信

vim /etc/rsyncd.conf

port=8730(默認873)

log file=/var/log/rsync.log

pid file=/var/run/rsync.pid

[aming] 模塊名

path=/tmp/rsync

use chroot=yes

max connections=4

read only=yes

list=yse

uid=root

gid=root

auth users=aming

secrets file=/etc/rs.passwd

host allow=192.168.11.190 允許哪些客戶端連接

還可以繼續增加模塊…

退出後要寫密碼

vim /etc/rs.passwd

aming:123aaa 左邊用戶名右邊密碼

chmod 400 /etc/rs.passwd 更改密碼的權限不可寫只可讀

rsync --daemon 啟動

ps aux |grep rsync

netstart -lnp 查看port

cat /var/log/rsync.log 查看日誌

驗證 數據拷貝

rsync -avzP [email protected]::aming/1.txt ./ 將16的模塊下1.txt同步到當前目錄,默認端口873,不通就指定端口 -aczP --port 8730

輸入密碼 123aaa

完成遠程拷貝


5-3-5後臺服務方式-2

rsync -avzP --port 8730 /tmp/ 111 / [email protected]::aming/ 本地111目錄傳輸到遠程16地址的aming模塊下的目錄 端口8730

輸入密碼123aaa

提示read only 就修改配置文件裏的read only

命令ln -s a b 把a建立一個軟鏈接到b 源文件是a

-avzPL 只傳輸源文件

把配置文件use chroot改為no,就不限制軟連接的傳輸

list 是否是允許查看模塊名

可以設置不需要密碼就連通網絡傳輸



Linux學習第四章