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學習第四章