centos上怎样记录一段时间内进程的流量情况?
RT,一台centos服务器不定时对外发送大量UDP包,造成丢包在20个ping左右,用啥工具能记录一段时间内进程的流量情况到文件,感谢! 您可以使用Linux下的一款强大的网络流量监控工具:nethogs。它可以按进程对网络流量进行统计,非常适合您的需求。首先,您需要在centos服务器上安装nethogs。如果您的服务器使用的是yum包管理器,那么您可以使用以下命令来进行安装:
sudo yum install nethogs
然后,您可以使用以下命令来监控所有网卡的流量:
sudo nethogs
如果您想要跟踪特定网卡(例如eth0)的流量,那么可以使用以下命令:
sudo nethogs eth0
如果您希望将这些信息记录到文件中,可以使用以下命令:
sudo nethogs -t > traffic.log
这将生成一个名为traffic.log的文件,其中包含所有的流量信息。
请注意,-t选项使nethogs以纯文本模式运行,这样就可以将输出重定向到文件中。
以上命令将持续监控网络流量,如果您想在特定的时间段后结束监控,可以使用timeout命令,例如,如果您想监控30秒的流量,可以使用以下命令:
sudo timeout 30 nethogs -t > traffic.log
这将在30秒后结束nethogs的运行,并将结果保存到traffic.log文件中。
需要注意的是,nethogs需要root权限来运行,所以请使用sudo来执行这些命令。
希望以上信息能够帮助到您! nethogs生成记录日志里没有记录时间,即记录的流量看不出是哪一分哪一秒的,有没有其他的工具感谢 所有的折腾都不如重装来得简单快捷大快人心 我也想,但是这服务器里数据和应用不是我部署的:L atop可以试试看。
下面是systemd的配置范例,自行指定日志的轮转间隔,注意频率太高会对CPU造成压力
17:48:35 # cat /usr/lib/systemd/system/atop.service
Description=Atop advanced performance monitor
Documentation=man:atop(1)
Type=simple
Environment="LOGOPTS="
Environment="LOGINTERVAL=600"
Environment="LOGGENERATIONS=7"
Environment="LOGPATH=/var/log/atop"
EnvironmentFile=/etc/sysconfig/atop
ExecStartPre=/bin/sh -c 'test -n "$LOGINTERVAL" -a "$LOGINTERVAL" -eq "$LOGINTERVAL"'
ExecStartPre=/bin/sh -c 'test -n "$LOGGENERATIONS" -a "$LOGGENERATIONS" -eq "$LOGGENERATIONS"'
ExecStart=/bin/sh -c 'exec /usr/bin/atop ${LOGOPTS} -w "${LOGPATH}/atop_$(date +%%Y%%m%%d)" ${LOGINTERVAL}'
ExecStartPost=/usr/bin/find "${LOGPATH}" -name "atop_*" -mtime +${LOGGENERATIONS} -exec rm -v {} \;
KillSignal=SIGUSR2
WantedBy=multi-user.target Tsar
页:
[1]