系統日常運維管理查看系統負載命令: w
重點是 load average後面的三個數字。 1,表示1分鐘之內的系統的平均負載。
2,表示5分鐘之內的系統的平均負載。
3,表示15分鐘之內的系統平均負載。
這個數字的意思是:單位時間內CPU活動進程數。 數字越大表示負載越高。 (不超過CPU的核心數)
查看cpu的核數:cat /proc/cpuinfo
vmstat 命令。
procs 顯示進程信息。 r表示運行和等待CPU時間片的進程數。長時間大於cpu個數說明cpu不夠用。
b表示等待資源的進程數。例如:I/O。內存等。長時間大於1需要關注。
free 表示空閒內存信息。物理內存。
buff 表示將寫入內存的緩衝大小。
cache 表示從磁盤中讀取的 緩存大小。
si 由交換分區寫入內存
so 由內存寫入交換分區
bi 讀磁盤的數據量
bo 寫磁盤的數據量。
us 表示用戶花費CPU的時間比。
sy 表示系統花費cpu的時間比。
id 表示CPU空閒的時間比。
wa 表示I/O等待所佔用的時間比。
需要關注的是 r b wa 列。 bi bo 數值高說明磁盤讀寫壓力大。si so 數值高 且不短變化 說明內存不夠用。
vmstat 用法: vmstat 1 表示每隔一秒 刷新一次。
vmstat 2 表示每隔二秒 刷新一次。
vmstat 1 10 表示每隔1秒刷新一次。 顯示10次。
top 命令
每隔3秒刷新一次。q鍵退出。
RES表示進程所佔用內存的大小。 %MEM爲使用內存的百分比。
默認是按CPU使用率排列。按M 可以按內存排列 。 p按cpu使用率排列。
top -bn1 表示非動態一次性打印系統的使用情況。
sar 命令。監控網卡狀態。
查看網卡流量 sar -n DEV
sar -n DEV -f /var/log/sa/sa01 用-f 後面帶文件名 可以查看某一天的流量
sar -b 查看磁盤io的狀態
sar -p 查看cpu使用狀態。
free 查看內存信息。
用法: free -m -g -k
ps 查看進程。
ps aux 查看系統進程。
STAT: 表示進程的狀態。
D表示不能中斷。通常爲IO
R表示在運行
S已經中斷的進程
s表示主進程
+表示前臺運行的進程。
netstat 端口查看。
netstat -lnp 打印當前啓動的端口
netstat -an 打印當前的網絡連接狀況 顯示數字端口
tcpdump 系統自帶抓包工具
tcpdump -nn -i eth0 tcp and host 192.168.0.1 and port 80
-nn 數字形式顯示。
-i 指定網卡
tcp 協議類型 udp
host 來源IP
prot 端口
tcpdump -nn -vs0 tcp and port not 22 -c 100 -w 1.cap
-c 抓包的次數
-w 保存爲文件
wireshark 在linux下也可以安裝 yum install -y wireshark
抓包分析http請求:tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"
固定用法。
iptables 命令
有三個表。
filter:一般的過濾功能...工作中常用
nat:用於nat功能(端口映射,地址映射,中轉IP等)
mangle:用於對特定數據包的修改
iptables -t filter -I INPUT -p tcp --dport 80 -s 12.12.12.12 -j REJECT
-t 指定哪個表 常用 filter
-I 插入一條規則 在最上面增加 -A 增加一條規則 在下面增加 -D 刪除規則。 優先級從上到下
-p 制定類型 tcp
--dport 指定端口 80
-s 來源IP地址
-j 指定動作。 REJECT 拒絕 DROP 直接扔掉 ACCEPT 允許
iptables -nvL 查看規則。 默認是查看filter表
iptables -Z清除iptables -nvL 看到的前兩列數據
iptables -F 清空規則
service iptables seve 保存規則。重啓生效
linux系統的任務計劃
* * * * * 分時日月周 。週日表示0或者7
0 */4 *** 每隔4個小時
0 1,3,6 *** 1 3 6小時
0 9-18 * * * 9-18點
crontab -e 直接進去制定計劃。相當於vim
crontab -l 列出任務計劃
crontab -r 刪除計劃
系統服務管理。
ntsysv 命令。相當於setup工具裏面的。
yum install -y ntsysv
chkconfig 服務工具。
chkconfig --list 列出所有的服務及每個級別的開啓狀態。
chkconfig --level 345 crond /on 表示crond 345級別 開、關
--level 指定級別。
chkconfig --add 增加某個服務
chkconfig --del 刪除某個服務
系統預設的服務都在/etc/init.d 目錄裏面
rsync 遠程備份工具
yum install -y rsync
rsync -av 1.txt /tmp/ 把1.txt 同步到/tmp/目錄下
rsync -av 1.txt [email protected]:/tmp/ 把1.txt 同步到1.1.1.1 服務器的/tmp/目錄下
rsync -av [email protected]. 1:/tmp/ /tmp/ 把遠程的拉到本地
選項
-a 歸檔模式
-v 打印一些信息
-l 保留軟鏈接
--delete 會刪除新目標比原目標新的文件
--exclude 可以排除不需要傳輸的文件。
用密鑰的方式訪問。不建立密鑰密碼 實現數據備份。
命令。ssh-keygen 能建立私鑰和公鑰
私鑰位置:/root/.ssh/id_rsa 公鑰:/root/.ssh/id_rsa.pub
rsync 後臺備份。
A機器新建rsync配置文件。vim /etc/rsync.conf
#port=873 #定義了端口
log file=/var/log/rsync.log #日誌文件
pid file=/var/run/rsyncd.pid # 指定PID文件。涉及服務啓動 停止動作。
[ beifen ] 自定義模塊名字。 兩邊要有空格
path=/zyos/ #數據存放路徑
use chroot=false # 默認是true 有軟鏈接 false 指的是除了path目錄 是否還可以訪問其他目錄。
max connections=4 #最大連接數 。默認是0 無限制
read only=no 讀寫權限
list=true 用戶查詢服務器模塊時 是否顯示。true顯示 false 不顯示
uid=root 傳輸文件時 以哪個身份傳輸。 文件所有者 所屬組
gid=root
auth users=test 指定傳輸的用戶。
secrets file=/etc/rsyncd.passwd 賬戶 密碼存放位置。
host allow=192.168.137.3 被允許連接的主機。可以是iPhone段。多個IP 逗號隔開。
secrets file 權限一定是要600.否則不能同步。
rsync --deamon --config=/etc/rsyncd.conf 啓動服務。 開機啓動 把命令寫入 /etc/rc.local
rsync -avL --delete [email protected]::beifen /tmp/ --password-file=/root/pass 服務器拉到本地。
rsync -avL --delete /root/test/ [email protected]::beifen/test --password-file=/root/pass 本地推到服務器 beifen模塊下
模塊同步 是雙冒號 ::
--password-file 指定密碼文件的路徑。 客戶端使用。 這樣免去輸密碼步驟,可用在腳本。