LinuxShell脚本攻略----第八章当个好管家


8.1 统计磁盘的使用情况

1 磁盘空间是一种有限资源

2 df和du是Linux中用于统计磁盘使用情况的重要命令,df是disk free的缩写,du是disk usage的缩写

3 找出某个文件(或多个文件)占用的磁盘空间: du file1 file2 ... // 统计结果默认是以字节作为计算单位

4 要获得某个目录中所有文件的磁盘使用情况,并在每一行中显示各个文件的磁盘占用详情,可以使用

du -a DIRECTORY // -a递归的输出指定目录或多个目录中的所有文件的统计结果

5 命令du默认显示文件占用的总字节数,但是以标准的KB,MB,GB显示磁盘使用情况,可以使用-h选项

du -h file // 命令将显示文件的占用的KB

6 du的选项-c可以输出作为命令参数的所有文件和目录的磁盘使用情况总计,它会在输出结果末尾加上一行总计

du -c file1 file2 // 命令会在最后一行总结所有文件或目录的磁盘使用情况

7 我们可以强制du使用特定的单位打印磁盘使用情况

du -b file //打印以字节为单位的文件大小

du -k file //打印以KB为单位的文件大小

du -m file //打印以MB为单位的文件大小

du -B file //打印以BLOCK_SIZE为单位的文件大小

8 有时候我们需要从磁盘使用统计中排除部分文件,可以使用两种方法

(1)通配符

du --exclude "word" DIRECTORY

du --exclude "*.txt" /path //命令排除所有的.txt文件

(2)排除列表

du --exclude-from EXCLUDE.txt DIRECTORY //EXCLUDE.txt包含了需要排除的文件列表

9 我们可以使用 --max-depth指定du应该遍历的目录层次的最大深度,将深度指定为1,可以统计当前目录下的所有文件占用内存的情况,将深度指定为2,可以统计当前目录下以及下一级子目录文件占用内存的情况

du --max-depth 2 DIRECTORY

10 找出指定目录中的最大的10个文件: du -ak source_dir | sort -nrk 1 | head

其中-a指定了所有的目录和文件,因此du会遍历source_dir并计算所有文件的大小,由于指定了选项-k,输出的第一列会包含以KB为单位的文件大小,第二列包含文件或文件夹的名称

11 du提供磁盘使用情况信息,而df提供磁盘可用空间信息。该命令用或不用选项-h皆可。如果用-h则会以易读的格式打印磁盘空间信息

8.2 计算命令执行时间

1 所有的类UNIX操作系统都包含time命令,你可以将time放在需要计算执行时间的命令之前

time command //command会执行并生成输出

输出中分别显示了执行该命令所花费的real时间,user时间以及system时间

real时间指的是挂钟时间,也就是命令从开始执行到结束的时间

user时间指的是进程花费在用户模式中的cpu时间,这是唯一真正用于执行进程所花费的时间

sys时间指的是进程花费在内核模式中的cpu时间

8.3 与当前登录用户,启动日志以及启动故障的相关信息

1 要获取当前登录用户的相关信息可以使用: who 或者是: w

该命令会提供当前登录的用户,用户所使用的伪终端TTY,伪终端当前所执行的命令以及用户登录的IP地址

2 TTY是与文本终端相关联的设备文件

3 要列出当前登录主机的用户列表可以使用: users

如果用户打开了多个伪终端,那么在同一个用户会多次显示

4 要查看系统已经运行了多长时间,可以使用:uptime

5 要获取前一次的启动以及用户登录会话的信息,可以使用:last

如果要获取单个用户的登录会话信息,可以使用:last user

8.4 用watch监视命令输出

1 watch命令可以用来在终端中以固定的间隔监视命令输出,watch command

命令默认每2秒更新一次输出

2 我们可以使用-n second指定需要更新输出的时间间隔

watch -n 5 command //命令将指定5秒更新一次输出

相关内容