您的位置:首页 > 运维架构 > Shell

Shell脚本编程——了解你的Linux系统必须掌握的20个命令

2013-08-31 20:23 1016 查看
要想详细了解你的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脚本如下:

#!/bin/sh

LOG_FILE=linux_system_info_$(date +%Y%m%d%H%M).log
COND=1
touch ${LOG_FILE}

printex()
{
echo " [root@luojianh ]# $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}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: