Linux dump命令

Linux dump命令,第1张

Linux dump命令用于备份文件系统。

dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。

语法:

dump[-cnu][-0123456789][-b

<区块大小>][-B<区块数目>][-d<密度>][-f<设备名称>][-h<层级>][-s<磁带长度>][-T<日期>][目录或文件系统]或dump[-wW]

参数:

-0123456789 备份的层级

-b<区块大小>指定区块的大小,单位为KB

-B<区块数目>指定备份卷册的区块数目

-c 修改备份磁带预设的密度与容量

-d<密度>设置磁带的密度,单位为BPI

-f<设备名称>指定备份设备

-h<层级>当备份层级等于或大于指定的层级时,将不备份用户标示为nodump的文件

-n 当备份工作需要管理员介入时,向所有operator群组中的使用者发出通知

-s<磁带长度>备份磁带的长度,单位为英尺

-T<日期>指定开始备份的时间与日期

-u 备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等

-w 与-W类似,但仅显示需要备份的文件

-W 显示需要备份的文件及其最后一次备份的层级,时间与日期。

    在Linux中输入命令man tcpdump给出的定义如下所示:

是不是感觉很懵?我们用通俗、形象、学术的表达方式来全方位描述tcpdump:

常用选项如下所示:

1、第一个抓包示例

-i : 指定用来抓包的网络接口,这个参数在服务器有多个网卡的时候非常有效

-nn : 不转换协议和端口号,当tcpdump遇到协议号或端口号,不需要将这些数字转换为对应的协议名称或端口名称,如22端口SSH端口,我们希望显示22,而非SSH

-X : 将协议头和包内容原原本本的显示出来,tcpdump会同时以16进制和ASCII的形式进行显示,在协议分析时非常好用。

'port 22' : 告诉tcpdump要有选择的显示所抓到的包,在该示例中,只显示源端口或目的端口是22的数据包,其他的数据包则不显示。

-c : 用来指定抓包的个数,示例设置的个数为1,则代表仅抓取一个包之后就退出不再抓包了。

2、-e 增加数据链路层的头部信息

    通过两个命令的输出对比,可以看到增加-e选项后,输出的结果中增加MAC地址信息。而且在输出内容中会有 oui Unknown ,OUI即Organizationally unique identifier(组织唯一标识符),在任何一块网卡中烧录的6字节MAC地址中,前3个字节体现了OUI,其表明了网卡的制造组织,通常情况下,该标识符是唯一的。在本例中,由于没有识别出网卡的制造商,因此显示为Unknown。

3、-l 将输出变为行缓冲模式

    -l的作用是将tcpdump的输出行为变为 行缓冲 方式,这样可以保证tcpdump遇到换行符,就立即将缓冲的内容输出到标准输出(stdout),方便利用管道或重定向方式进行后续处理,而不会造成延迟。

    在Linux的标准I/O中提供了 全缓冲 行缓冲 无缓冲 三种缓冲方式。标准错误是不带缓冲的,而终端设备常为行缓冲,其他默认则为全缓冲。

    在该例中,将tcpdump输出的内容通过管道提取第5列,可以用来查看详细的连接信息。而如果不加 -l 选项时,则只有当缓冲区全部占满时,tcpdump才会将缓冲区中的内容输出,这样就有可能导致输出不连续的,如果强行结束,则会影响下一行的完整性。

4、-t 输出不加时间戳

    在增加选项 -t 选项后,时间23:48:03.193526就消失了。tcpdump默认情况下是按微秒来计时,因此最一个时间精确到了第6位。

5、 -v 显示详细信息

    在增加 -v 选项后,会在输出的内容中增加 tos ttl id offset 协议编号 总长度 等,如需要理解这些信息,就需要了解TCP/IP协议中的头的具体定义了。

6、-F 指定过滤表达式所在的文件

    在第一个示例中,命令行增加了 'port 22' ,而这一项就叫 过滤条件 ,如果设置了过滤条件,则tcpdump只抓取满足过滤条件的数据包。如需要设置较为复杂的过滤条件或复用过滤条件时,这时可以将过滤条件保存为文件,然后通过-F加载该过滤文件。

7、 -w 将原始数据包信息保存到文件中

    当我们查看保存的文件时,出现的是乱码。则代表无法直接查看,很有可能是二进制文件。那么怎么查看保存的文件了?请看下一个示例。

7、 -r 从文件中读取原始数据包

    通过-w和-r选项即可实现抓包的录制回放功能。

Netstat是一款CLI工具,它可以列出系统上所有的网络连接情况,包括tcp、udp和其他unix网络socket,另外它还能列出处于监听状态的socket。当Linux网络或系统排查问题时,netstat基本上是必用的工具之一,下面开始对netstat的常见用法加以说明。

用途:列出tcp、udp和其他unix套接字下所有的连接,往往信息提供的不够直观和详细,因此也常通过搭配其他参数一起使用。

相信很多用户已经发现,在执行上述命令的时候结果查询的不是很快,这是因为netstat默认会使用反向域名解析,会把对应的IPv4地址解析对应到IPv6或者主机名,如果IP地址信息足够满足需求时,大可以禁用反向域名解析,加上 -n 参数。

如果是查看udp协议下的连接,则用 netstat -nlu 。

常常会遇到如下场景:我们提前预知某服务程序开放某监听端口,于是想查看对应连接的信息,包括进程名、进程ID甚至执行owner信息等,可加入 -p , -e 参数来实现。

netstat -s 可以打印出网络统计数据,包括某个协议下的收发包数量;

netstat -rn 可查看路由信息,效果等同于 route -n ;

netstat -i 或者 netstat -ie 可查看网络接口信息,且后一条命令效果等同于 ifconfig -a ;

用简单的话来定义tcpdump,就是: dump the traffic on a network ,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息,是一个十分常用的Linux抓包工具。

在介绍tcpdump常用命令之前先提一个小建议,每个tcpdump命令的末尾加上 -s 0 -nvvvtttt 参数,简单解释一下参数的含义:

另外还可以结合自己的需要选择要不要加上 -x -xx -X -XX (输出会打印每个包的头部数据,且会以16进制或者ASCII码形式打印每个包的数据)等参数

如下仅简单说明一下上文没提到的用法:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9008831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存