Shell指令碼程式設計——瞭解你的Linux系統必須掌握的20個命令
阿新 • • 發佈:2019-01-07
要想詳細瞭解你的Linux系統,為系統評估和效能調化提供準確的資訊,那麼,你會經常用到這幾組命令。
一. 系統資訊
1. 檢視核心版本、編譯主機、編譯器版本和編譯時間的資訊
cat /proc/version
2. 檢視bootloader啟動核心的引數
cat /proc/cmdline
3. 檢視核心版本和CPU架構等資訊
uname -a
4. 檢視當前時間、系統執行時間、使用者數量和負載資訊
uptime
5. 檢視系統程序、記憶體使用、交換記憶體、磁碟IO讀寫、系統中斷及上下文切換和CPU使用率的動態資訊
vmstat 1 10
二. CPU資訊
6. CPU的每個核的資訊,比如主頻、硬體商、cache大小和BogoMIPS等資訊
cat /proc/cpuinfo
三. 記憶體資訊
7. 記憶體的綜合資訊。不要驚訝於Linux系統總是所剩記憶體不多,free列第二行才是實際剩餘記憶體,大量的cache/buffer是為了提高系統訪問磁碟的速度。
free
8. 詳細記憶體資訊。
cat /proc/meminfo
四. 磁碟資訊
9. 當前掛載的檔案系統資訊
mount -l
10. 當前磁碟資訊,比如分割槽和大小
fdisk -l
11. 當前檔案系統資訊,包括使用百分比和掛載點
df -h
12. 當前掛載的檔案系統資訊快取檔案
cat /etc/mtab
13. 掛載檔案系統的配置檔案
cat /etc/fstab
五. 程序資訊
14. 系統的限制資訊
ulimit -a
15. ten processes catch most CPU resource
ps aux | sort -k 3 -r | head -11
16. ten processes catch most Memory resource
ps aux | sort -k 4 -r | head -11
六. 其它資訊
17. current modules and referenced counter
lsmod
18. top綜合資訊
top
19. all process info
ps -ef
20. 系統啟動日誌
cat /var/log/dmesg
檢視以上資訊的shell指令碼如下:
一. 系統資訊
1. 檢視核心版本、編譯主機、編譯器版本和編譯時間的資訊
cat /proc/version
2. 檢視bootloader啟動核心的引數
cat /proc/cmdline
3. 檢視核心版本和CPU架構等資訊
uname -a
4. 檢視當前時間、系統執行時間、使用者數量和負載資訊
uptime
5. 檢視系統程序、記憶體使用、交換記憶體、磁碟IO讀寫、系統中斷及上下文切換和CPU使用率的動態資訊
vmstat 1 10
二. CPU資訊
6. CPU的每個核的資訊,比如主頻、硬體商、cache大小和BogoMIPS等資訊
cat /proc/cpuinfo
三. 記憶體資訊
7. 記憶體的綜合資訊。不要驚訝於Linux系統總是所剩記憶體不多,free列第二行才是實際剩餘記憶體,大量的cache/buffer是為了提高系統訪問磁碟的速度。
free
8. 詳細記憶體資訊。
cat /proc/meminfo
四. 磁碟資訊
9. 當前掛載的檔案系統資訊
mount -l
10. 當前磁碟資訊,比如分割槽和大小
fdisk -l
11. 當前檔案系統資訊,包括使用百分比和掛載點
df -h
12. 當前掛載的檔案系統資訊快取檔案
cat /etc/mtab
13. 掛載檔案系統的配置檔案
cat /etc/fstab
五. 程序資訊
14. 系統的限制資訊
ulimit -a
15. ten processes catch most CPU resource
ps aux | sort -k 3 -r | head -11
16. ten processes catch most Memory resource
ps aux | sort -k 4 -r | head -11
六. 其它資訊
17. current modules and referenced counter
lsmod
18. top綜合資訊
top
19. all process info
ps -ef
20. 系統啟動日誌
cat /var/log/dmesg
檢視以上資訊的shell指令碼如下:
#!/bin/sh
LOG_FILE=linux_system_info_$(date +%Y%m%d%H%M).log
COND=1
touch ${LOG_FILE}
printex()
{
echo " [[email protected] ]# $1"
}
while [ $COND -eq 1 ];
do
echo " *** System information ***"
printex "cat /proc/version"
cat /proc/version
printex "cat /proc/cmdline"
cat /proc/cmdline
printex "uname -a"
uname -a
printex "uptime"
uptime
echo " ## summary info"
printex "vmstat 1 10"
vmstat 1 10
echo ""
echo " *** CPU information ***"
CORES=$(grep processor /proc/cpuinfo | wc -l)
CPU_TYPE=$(uname -m)
echo " TITLE: CPU type: ${CPU_TYPE}, cores: ${CORES}"
printex "cat /proc/cpuinfo"
cat /proc/cpuinfo
echo ""
echo " *** Memory information ***"
printex "free"
free
printex "cat /proc/meminfo"
cat /proc/meminfo
echo ""
echo " *** Disk/Flash information ***"
printex "mount -l #current mount info"
mount -l
printex "fdisk -l #current disk info"
fdisk -l
printex "df -h #current fs info with using rate"
df -h
printex "cat /etc/mtab"
cat /etc/mtab
printex "cat /etc/fstab"
cat /etc/fstab
echo ""
echo " *** Processes/Threads information ***"
echo " ## limited info"
printex "ulimit -a"
ulimit -a
echo " ## ten processes catch most CPU resource"
printex "ps aux | sort -k 3 -r | head -11"
ps aux | sort -k 3 -r | head -11
echo " ## ten processes catch most Memory resource"
printex "ps aux | sort -k 4 -r | head -11"
ps aux | sort -k 4 -r | head -11
echo ""
echo " *** Lardge information ***"
printex "lsmod #current modules and referenced counter"
lsmod
printex "top -d 1 -n 1"
top -d 1 -n 1
echo " ## all process info"
ps -ef
printex "cat /var/log/dmesg"
cat /var/log/dmesg
echo ""
COND=0
done >> ${LOG_FILE}
unix2dos ${LOG_FILE}