Linux中壓縮、網(wǎng)絡(luò)傳輸與系統(tǒng)監(jiān)控工具的使用完整指南
引言
在Linux系統(tǒng)管理中,壓縮與傳輸工具是數(shù)據(jù)備份和遠程協(xié)作的橋梁,而系統(tǒng)監(jiān)控工具則是保障服務(wù)器穩(wěn)定運行的眼睛。當我們需要備份海量數(shù)據(jù)以節(jié)省存儲資源時,tar與zip等壓縮工具能將文件體積大幅縮減;當需要在不同服務(wù)器間傳輸文件時,scp和rz/sz提供了安全高效的傳輸方案;而top、sar等系統(tǒng)工具則能實時洞悉服務(wù)器的運行狀態(tài),幫助管理員提前發(fā)現(xiàn)性能瓶頸。
本文將系統(tǒng)解析壓縮解壓的核心技術(shù)、跨設(shè)備文件傳輸?shù)淖罴褜嵺`,以及系統(tǒng)資源監(jiān)控的全流程方案,幫助讀者構(gòu)建從數(shù)據(jù)壓縮到遠程管理的完整技能體系
一、壓縮與解壓:數(shù)據(jù)存儲與傳輸?shù)膬?yōu)化核心
1. zip/unzip:通用壓縮格式的便捷操作
(1)zip壓縮命令
# 壓縮單個文件 zip 壓縮包名.zip 文件名 # 示例:壓縮配置文件 zip config.zip config.ini # 壓縮目錄(需加-r參數(shù)) zip -r 壓縮包名.zip 目錄名 # 示例:壓縮整個項目目錄 zip -r project.zip project/ # 壓縮時排除指定文件 zip -r project.zip project/ -x "project/temp/*" # 壓縮并顯示進度 zip -rq project.zip project/ &> /dev/null && echo "壓縮完成"
核心參數(shù):
-r
(recursive):遞歸壓縮目錄及其內(nèi)容-q
(quiet):靜默壓縮,不顯示過程-x
(exclude):排除指定文件或目錄-z
:添加壓縮說明-m
:壓縮后刪除源文件
(2)unzip解壓命令
# 解壓到當前目錄 unzip 壓縮包名.zip # 示例:解壓配置文件包 unzip config.zip # 解壓到指定目錄(-d參數(shù)) unzip 壓縮包名.zip -d 目標目錄 # 示例:解壓到backup目錄 unzip project.zip -d backup/ # 查看壓縮包內(nèi)容(不解壓) unzip -l 壓縮包名.zip # 解壓時覆蓋文件不詢問 unzip -o 壓縮包名.zip
實用技巧:
- 批量解壓多個zip包:
for f in *.zip; do unzip $f; done
- 選擇性解壓:
unzip project.zip "src/*.java"
- 密碼保護壓縮包:
zip -r -P password secure.zip sensitive_data/
(注:zip密碼保護強度較低,不建議用于敏感數(shù)據(jù))
2. tar:專業(yè)備份工具的終極方案
注意:日常生活中我們一般都是說打包壓縮,事實上,打包和壓縮是兩碼事
而對于tar來說,就將此區(qū)分開來,打包的文件后綴為.tar,壓縮后的文件為.gz
打包壓縮后的文件為 .tar.gz 一般也簡寫為.tgz
(1)tar打包壓縮語法
# 基本語法:tar [選項] 歸檔文件名 源文件/目錄 # 示例1:打包目錄(不壓縮) tar -cvf project.tar project/ # 示例2:打包并壓縮為tgz格式(gzip壓縮) tar -czvf project.tgz project/ # 示例3:打包并壓縮為tbz2格式(bzip2壓縮,壓縮率更高) tar -cjvf project.tbz2 project/ # 示例4:打包并壓縮為txz格式(xz壓縮,壓縮率最高) tar -cJvf project.txz project/
(2)tar解壓命令
# 解壓tgz文件到當前目錄 tar -xvzf project.tgz # 解壓到指定目錄(-C參數(shù)) tar -xvzf project.tgz -C /backup/ # 查看歸檔文件內(nèi)容 tar -tvf project.tar # 解壓時排除指定文件 tar -xvzf project.tgz --exclude "project/logs/*"
(3)核心選項解析
- 打包選項:
-c
(create):創(chuàng)建歸檔文件-v
(verbose):顯示詳細過程-f
(file):指定歸檔文件名(必須放在選項最后
)
- 壓縮選項:
-z
:使用gzip壓縮(.tar.gz或.tgz)-j
:使用bzip2壓縮(.tar.bz2)-J
:使用xz壓縮(.tar.xz)
- 解壓選項:
-x
(extract):解壓歸檔文件-C
(directory):指定解壓目錄--strip n
:解壓時移除n層目錄結(jié)構(gòu)
3. 壓縮工具對比與場景選擇
工具 | 壓縮格式 | 壓縮率 | 速度 | 適用場景 |
---|---|---|---|---|
zip | .zip | 中 | 快 | 通用文件壓縮、跨平臺傳輸 |
gzip | .gz | 中 | 快 | 單文件壓縮、日志歸檔 |
bzip2 | .bz2 | 高 | 中 | 備份文件、長期存儲 |
xz | .xz | 極高 | 慢 | 歸檔壓縮、節(jié)省存儲空間 |
tar | .tar | 無 | 極快 | 僅打包不壓縮的場景 |
4. 壓縮實戰(zhàn):日志歸檔與備份策略
(1)按日期歸檔日志
# 歸檔今天的日志并壓縮 tar -czvf access_log_$(date +%Y%m%d).tgz /var/log/access.log # 保留7天日志,自動刪除過期歸檔 find /backup/logs -name "access_log_*.tgz" -mtime +7 -exec rm {} \;
(2)增量備份方案
# 首次全量備份 tar -czvf full_backup.tgz /data/ # 后續(xù)增量備份(僅備份變化文件) rsync -avz --delete /data/ /data_backup/ tar -czvf incremental_$(date +%Y%m%d).tgz /data_backup/
(3)跨服務(wù)器壓縮傳輸
# 壓縮并遠程傳輸(一行命令完成) tar -czf - /data/ | ssh user@remote "cat > /backup/data_$(date +%Y%m%d).tgz"
二、網(wǎng)絡(luò)傳輸:跨設(shè)備文件交互的橋梁
1. scp:安全拷貝的跨服務(wù)器傳輸
(1)基本傳輸語法
# 從本地復(fù)制到遠程 scp 本地文件/目錄 user@遠程IP:遠程路徑 # 示例:上傳文件到遠程服務(wù)器 scp config.ini root@192.168.1.100:/etc/ # 從遠程復(fù)制到本地 scp user@遠程IP:遠程文件/目錄 本地路徑 # 示例:下載遠程日志文件 scp root@192.168.1.100:/var/log/access.log ./ # 遞歸復(fù)制目錄(-r參數(shù)) scp -r 本地目錄 user@遠程IP:遠程目錄
(2)高級傳輸選項
# 指定SSH端口(-P參數(shù),注意大寫) scp -P 2222 config.ini root@192.168.1.100:/etc/ # 顯示傳輸進度(-v參數(shù)) scp -v big_file.iso user@remote:/backup/ # 壓縮傳輸減少帶寬占用(-C參數(shù)) scp -C large_directory/ user@remote:/backup/
(3)免密傳輸配置
# 1. 本地生成密鑰對 ssh-keygen -t rsa # 2. 將公鑰復(fù)制到遠程服務(wù)器 ssh-copy-id user@remoteIP # 3. 免密傳輸示例 scp config.ini user@remote:/etc/ # 無需輸入密碼
2. rz/sz:交互式文件傳輸
(1)rz:上傳文件到服務(wù)器
# 在終端中執(zhí)行rz命令,彈出文件選擇對話框 rz # 示例:上傳代碼包到當前目錄 rz project.zip # 指定上傳目錄 rz -e -y -p /data/
(2)sz:從服務(wù)器下載文件
# 下載單個文件 sz 文件名 # 示例:下載配置文件到本地 sz /etc/httpd.conf # 下載多個文件 sz file1.txt file2.log # 遞歸下載目錄(需配合tar) tar -czf - directory/ | sz -
(3)工具安裝與配置
# CentOS/RHEL安裝rz/sz yum install -y lrzsz # 配置rz/sz默認路徑(修改~/.bashrc) export RZ_SZ_PATH="/downloads" source ~/.bashrc
3. 傳輸工具對比與場景選擇
工具 | 協(xié)議 | 交互性 | 跨平臺 | 大文件支持 | 適用場景 |
---|---|---|---|---|---|
scp | SSH | 非交互 | 是 | 好 | 腳本自動化傳輸、安全傳輸 |
rz/sz | Zmodem | 交互 | 部分 | 一般 | 終端交互式上傳下載 |
rsync | SSH | 非交互 | 是 | 極好 | 增量同步、遠程備份 |
ftp/sftp | FTP/SFTP | 交互 | 是 | 好 | 傳統(tǒng)文件服務(wù)器、多用戶共享 |
4. 網(wǎng)絡(luò)傳輸安全與性能優(yōu)化
(1)安全傳輸實踐
- 避免使用明文傳輸協(xié)議(如ftp),優(yōu)先使用scp/sftp
- 定期更新服務(wù)器SSH密鑰,防止中間人攻擊
- 對敏感數(shù)據(jù)先加密再傳輸:
gpg -c sensitive_data.txt && scp sensitive_data.txt.gpg remote:
(2)大文件傳輸優(yōu)化
使用rsync替代scp進行大文件增量傳輸:
rsync -avzP --progress big_file.iso user@remote:/backup/
分割文件傳輸后合并:
# 分割文件(每個1GB) split -b 1G big_file.iso part_ # 傳輸分割文件 scp part_* user@remote:/backup/ # 遠程合并文件 cat /backup/part_* > /backup/big_file.iso
利用多線程傳輸工具(如aria2):
aria2c -x 16 scp://user@remote/path/to/big_file.iso
三、系統(tǒng)狀態(tài)監(jiān)控:服務(wù)器健康的全方位診斷
1. top:實時系統(tǒng)監(jiān)控
(1)基礎(chǔ)監(jiān)控界面
# 啟動top進入實時監(jiān)控 top
(2)界面解析
系統(tǒng)概況行:
top - 15:30:22 up 1 day, 23:50, 2 users, load average: 0.15, 0.20, 0.25
分別為:時間、運行時間、用戶數(shù)、1/5/15分鐘平均負載
CPU使用行:
Cpu(s): 0.5%us, 0.3%sy, 0.0%ni, 99.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
us
:用戶空間CPU,sy
:內(nèi)核空間,id
:空閑,wa
:I/O等待
內(nèi)存使用區(qū):
Mem: 16384M total, 15232M used, 1152M free, 768M buffers Swap: 32768M total, 0M used, 32768M free, 8960M cached
進程列表區(qū):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 4880 340 280 S 0.0 0.0 0:01.20 systemd
(3)交互操作
P
:按CPU占用排序M
:按內(nèi)存占用排序N
:按PID排序k
:輸入PID終止進程f
:自定義顯示字段t
:切換到CPU/內(nèi)存/進程樹視圖
2. sar:系統(tǒng)活動的歷史記錄儀
(1)CPU性能監(jiān)控
# 查看當前CPU利用率(每1秒采樣,共5次) sar -u 1 5 # 查看歷史CPU數(shù)據(jù)(昨天10點到12點) sar -u -f /var/log/sa/sa28 -s 10:00 -e 12:00
(2)內(nèi)存與swap監(jiān)控
# 查看內(nèi)存使用情況 sar -r 2 3 # 查看swap使用情況 sar -W 2 3
(3)磁盤I/O監(jiān)控
# 查看磁盤讀寫速率 sar -d 3 2 # 查看top 5繁忙磁盤 sar -d -o disk_sar 3 100 sar -d -f disk_sar | sort -k 5 -nr | head -n 5
3. 系統(tǒng)資源查看:free、df、netstat
(1)內(nèi)存查看:free
# 查看內(nèi)存使用(默認單位KB) free # 以MB為單位顯示 free -m # 顯示詳細內(nèi)存統(tǒng)計 free -h -t
(2)磁盤查看:df
# 查看磁盤空間使用 df # 以人類可讀格式顯示 df -h # 查看指定目錄的磁盤占用 df -h /data/
(3)網(wǎng)絡(luò)查看:netstat
# 查看所有網(wǎng)絡(luò)連接 netstat -an # 查看TCP連接狀態(tài) netstat -ant | grep ESTABLISHED # 查看監(jiān)聽端口 netstat -tuln
4. 性能分析實戰(zhàn):定位系統(tǒng)瓶頸
(1)CPU高負載排查
# 1. 用top定位高CPU進程 top # 2. 查看進程詳細信息 ps -ef | grep 高CPU進程PID # 3. 分析進程資源占用 pmap 進程PID # 4. 查看進程線程狀態(tài) top -H -p 進程PID
(2)內(nèi)存泄漏檢測
# 1. 監(jiān)控內(nèi)存變化趨勢 watch -n 5 'free -m | grep Mem' # 2. 查看內(nèi)存占用前10的進程 ps -eo pid,ppid,user,%mem,%cpu,comm | sort -k4 -nr | head -n 10 # 3. 使用valgrind分析程序內(nèi)存泄漏 valgrind --leak-check=full ./program
(3)網(wǎng)絡(luò)擁堵分析
# 1. 查看網(wǎng)絡(luò)接口流量 iftop -i eth0 # 2. 分析TCP連接狀態(tài) netstat -ant | awk '{print $6}' | sort | uniq -c | sort -nr # 3. 追蹤網(wǎng)絡(luò)延遲 tracepath www.example.com
四、系統(tǒng)管理工具:服務(wù)器控制的終極手段
1. uname:系統(tǒng)信息的全景掃描
(1)基本系統(tǒng)信息
# 查看所有系統(tǒng)信息 uname -a # 輸出示例: # Linux localhost.localdomain 5.4.0-124-generic #140-Ubuntu SMP Fri Mar 24 14:29:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
(2)分項信息查看
# 查看內(nèi)核版本 uname -r # 查看系統(tǒng)架構(gòu) uname -m # 查看主機名 uname -n # 查看操作系統(tǒng)類型 uname -s
(3)擴展系統(tǒng)信息
# 查看Linux發(fā)行版信息 cat /etc/os-release # 查看CPU信息 lscpu # 查看硬件信息 dmidecode
2. shutdown:系統(tǒng)開關(guān)機的安全控制
注意:Linux系統(tǒng)作為服務(wù)器使用,如非必要,不建議關(guān)機
(1)關(guān)機操作
# 立即關(guān)機(root權(quán)限) shutdown -h now # 10分鐘后關(guān)機 shutdown -h +10 "系統(tǒng)即將關(guān)機,請保存工作" # 取消關(guān)機 shutdown -c
(2)重啟操作
# 立即重啟 shutdown -r now # 定時重啟 shutdown -r 22:00 "夜間例行重啟"
(3)其他關(guān)機命令
# 立即關(guān)機(簡化命令) halt # 立即重啟(簡化命令) reboot # 關(guān)閉系統(tǒng)但不切斷電源 poweroff
3. bc:命令行計算器的科學計算
(1)基本計算
# 啟動bc計算器 bc # 示例計算: 10 + 20 30 * 4 100 / 3 5 ^ 2 # 5的平方 sqrt(16) # 平方根
(2)表達式計算
# 直接計算表達式(無需進入交互模式) echo "100 * 3.14" | bc # 計算分數(shù)結(jié)果 echo "scale=2; 1/3" | bc # scale指定小數(shù)位數(shù) # 計算復(fù)雜表達式 echo "((2+3)*4-5)/2" | bc
(3)高級數(shù)學函數(shù)
# 啟用數(shù)學庫(-l參數(shù)) bc -l # 示例函數(shù): sin(1) # 正弦函數(shù) cos(1) # 余弦函數(shù) log(10) # 自然對數(shù) exp(1) # 指數(shù)函數(shù)
五、擴展知識:壓縮與系統(tǒng)工具的深度實踐
1. 壓縮原理與算法選擇
(1)壓縮核心概念
- 無損壓縮:還原后數(shù)據(jù)與原始完全一致(如zip、tar.gz)
- 有損壓縮:還原后有數(shù)據(jù)損失(如jpg、mp3,不用于系統(tǒng)文件)
- 壓縮率與速度權(quán)衡:xz > bzip2 > gzip > zip,速度反之
(2)算法特點對比
- gzip:平衡壓縮率與速度,適用于日志歸檔、臨時壓縮
- bzip2:較高壓縮率,適用于備份文件、長期存儲
- xz:最高壓縮率,適合歸檔極少訪問的歷史數(shù)據(jù)
- zip:跨平臺支持好,適合通用文件壓縮傳輸
2. 系統(tǒng)監(jiān)控最佳實踐
(1)監(jiān)控指標閾值設(shè)置
- CPU利用率:長期超過80%需關(guān)注
- 內(nèi)存空閑:低于10%需排查內(nèi)存泄漏
- 磁盤空間:剩余空間低于20%需清理
- 網(wǎng)絡(luò)帶寬:利用率超過70%需擴容
(2)自動化監(jiān)控腳本
# 定時監(jiān)控系統(tǒng)狀態(tài)并發(fā)送告警 #!/bin/bash # 監(jiān)控指標 cpu_usage=$(top -bn1 | grep "Cpu" | awk '{print $2}' | cut -d'%' -f1) mem_free=$(free -m | grep Mem | awk '{print $4}') disk_free=$(df -h | grep / | awk '{print $4}' | cut -d% -f1) # 告警閾值 cpu_warn=80 mem_warn=100 disk_warn=20 # 發(fā)送告警郵件 if [ $(echo "$cpu_usage > $cpu_warn" | bc -l) -eq 1 ]; then echo "CPU高負載: $cpu_usage%" | mail -s "系統(tǒng)告警" admin@example.com fi # 更多指標監(jiān)控...
3. 實戰(zhàn)案例:服務(wù)器完整備份與遷移
案例:服務(wù)器數(shù)據(jù)遷移方案
# 1. 壓縮源服務(wù)器數(shù)據(jù) tar -czvf data_backup.tgz /data/ /config/ # 2. 傳輸?shù)侥繕朔?wù)器 scp data_backup.tgz root@new_server:/backup/ # 3. 解壓并驗證 ssh root@new_server "tar -xvzf /backup/data_backup.tgz -C /" # 4. 同步系統(tǒng)配置 rsync -avzP --exclude "data/" root@old_server:/etc/ /etc/ # 5. 啟動服務(wù)并檢查 systemctl restart all-services top -15
結(jié)語
通過掌握壓縮、網(wǎng)絡(luò)傳輸與系統(tǒng)監(jiān)控的核心工具,讀者將能夠高效管理服務(wù)器數(shù)據(jù)生命周期,從本地壓縮歸檔到跨服務(wù)器安全傳輸,再到系統(tǒng)運行狀態(tài)的實時監(jiān)控與性能優(yōu)化。無論是tar
的專業(yè)備份方案,scp
的安全遠程傳輸,還是top
與sar
的多維性能分析,這些工具的靈活運用將成為Linux系統(tǒng)管理員的核心競爭力。在實際運維中,建議結(jié)合自動化腳本與監(jiān)控平臺,建立完善的數(shù)據(jù)備份策略與系統(tǒng)健康檢查機制,確保服務(wù)器穩(wěn)定高效運行。
以上就是Linux中壓縮、網(wǎng)絡(luò)傳輸與系統(tǒng)監(jiān)控工具的使用完整指南的詳細內(nèi)容,更多關(guān)于Linux壓縮 網(wǎng)絡(luò)傳輸與系統(tǒng)監(jiān)控的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解虛擬機中CentOS 7 網(wǎng)絡(luò)和ssh的配置
這篇文章主要介紹了詳解虛擬機中CentOS 7 網(wǎng)絡(luò)和ssh的配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03Linux Apache+Proftpd構(gòu)建虛擬主機時要注意的幾個安全問題
Linux下Apache+Proftpd構(gòu)建虛擬主機時要注意的幾個安全問題,大家可以參考下,有其它未完整的地方,大家可以補充下。2009-08-08linux CentOS 系統(tǒng)php和mysql命令加入到環(huán)境變量中
這篇文章主要介紹了linux CentOS 系統(tǒng)php和mysql命令加入到環(huán)境變量中的相關(guān)資料,需要的朋友可以參考下2016-12-12Apache虛擬目錄配置及vue-cli反向代理的設(shè)置方法
本篇文章主要介紹了Apache虛擬目錄配置及vue-cli反向代理的設(shè)置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09