要监控Linux流量,可以使用vnstat
工具。首先需要安装vnstat
,然后使用cron
定时任务来定期收集流量数据。
- 安装
vnstat
:
# 对于Debian/Ubuntu系统
sudo apt-get install vnstat
# 对于CentOS/RHEL系统
sudo yum install vnstat
- 配置
vnstat
:
编辑/etc/vnstat.conf
文件,设置统计间隔和日志文件路径。例如,每5分钟收集一次数据,将结果保存到/var/log/vnstat/
目录下:
[global]
interval=5
logfile=/var/log/vnstat/vnstat.log
- 重启
vnstat
服务以应用更改:
sudo systemctl restart vnstat
- 使用
cron
定时任务定期收集流量数据。编辑/etc/crontab
文件,添加以下行以每5分钟运行一次vnstat
收集脚本:
*/5 * * * * root /usr/local/sbin/vnstat -i /var/lib/vnstat/vnstat.info > /tmp/vnstat_output.txt && cat /tmp/vnstat_output.txt >> /var/log/vnstat/vnstat.log
- 为脚本添加可执行权限:
chmod +x /usr/local/sbin/vnstat_collector.sh
- 创建并编辑脚本文件
/usr/local/sbin/vnstat_collector.sh
:
#!/bin/bash
# 收集指定网卡的流量数据(例如eth0)
if [ $# -ne 1 ]; then
echo "Usage: $0 <interface>"
exit 1
fi
INTERFACE=$1
echo "Collecting traffic data for interface $INTERFACE..." | tee -a /var/log/vnstat/vnstat.log
cat /var/lib/vnstat/$INTERFACE.info > /tmp/$INTERFACE_traffic_data.txt && echo "Traffic data collected." | tee -a /var/log/vnstat/vnstat.log || echo "Failed to collect traffic data." | tee -a /var/log/vnstat/vnstat.log
- 为脚本添加可执行权限:
chmod +x /usr/local/sbin/vnstat_collector.sh
- 现在,你可以使用以下命令查看实时流量数据:
tail -f /var/log/vnstat/*.log