linux运维中经常用到的shell

df命令

linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。

df命令可以显示目前所有文件系统的可用空间及使用情形。

du:查询文件或文件夹的磁盘使用空间。

-h:打印格式适合人类阅读

-t type:查看指定类型文件系统的磁盘使用情况。type可以使ext3、ext4等。

-i:查看inode的使用情况

-T:列出文件系统类型

du命令

如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!

在运维的时候,会发现,sometimes,即使rm掉了文件,磁盘空间还是未释放。这是为啥?

在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink)。

【当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。】
然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

解决方法

[root@ticketb ~]# lsof |grep deleted

通过上面的命令会得到一个已经删除但是仍然被应用程序占用的文件列表。

一种让磁盘释放空间的方法是kill掉还在占用文件的进程。这样空间就会自动释放了。

---------------------------

所以,删除大文件的时候,最好是用工具把文件清空。而不是直接rm。

---------------------------

find

find命令常用的参数有:

-type:要查找的文件类型

-name:要查找的文件名字

-user:要查找的文件的属主

-size:要查找文件的大小。通常用于查找size是0的文件,即空文件。

grep

grep命令主要的应用就是正则匹配,查找字符串中是否存在一些内容。

netstat

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

例子:

列出所有端口 netstat -a

列出所有 tcp 端口 netstat -at

列出所有 udp 端口 netstat -au

只显示监听端口 netstat -l

只列出所有监听 tcp 端口 netstat -lt

只列出所有监听 udp 端口 netstat -lu

显示所有端口的统计信息 netstat -s

显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su

每隔一秒输出一次状态:netstat -atc  #这里的c参数的含义就是每隔一秒输出一次

找出运行在指定端口的进程:netstat -an | grep ':80'

参考资料

cut

cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。

cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

关于cut,可以参考这里

----------------------------------

lsof
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。

在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

 

 

 

你可能感兴趣的:(shell脚本)