服务器流量监控工具vnStat的简单使用以及关于Linux的软中断信号(signal)的一点内容

一、服务器流量监控工具vnStat的简单使用

    vnStat是为Linux和BSD设计的基于控制台的网络流量监控工具,通过它可以非常方便在命令行查看流量统计情况。它可以保留某个或多个所选择的网络接口的网络流量日志。为了生成日志,vnStat使用内核提供的信息。换句话说,它不会嗅探网络流量,确保尽量少用系统资源。

    安装起来也很简单,直接yum安装即可。安装启动命令如下:

[root@007 ~]# yum -y install vnstat
useradd: failed to reset the lastlog entry of UID 497: Is a directoryInstalling : vnstat-1.11-1.el6.x86_64                                                                                                                                                                       1/1 Verifying  : vnstat-1.11-1.el6.x86_64                                                                                                                                                                       1/1 
Installed:vnstat.x86_64 0:1.11-1.el6                                                                                                                                                                                      
Complete!
[root@007 ~]# vnstat --helpvnStat 1.11 by Teemu Toivola <tst at iki dot fi>-q,  --query          query database-h,  --hours          show hours-d,  --days           show days-m,  --months         show months-w,  --weeks          show weeks-t,  --top10          show top10-s,  --short          use short output-u,  --update         update database-i,  --iface          select interface (default: eth0)-?,  --help           short help-v,  --version        show version-tr, --traffic        calculate traffic-ru, --rateunit       swap configured rate unit-l,  --live           show transfer rate in real time
See also "--longhelp" for complete options list and "man vnstat".
[root@007 ~]# vnstat -u -i eth1
Error: Unable to read database "/var/lib/vnstat/eth1".
Info: -> A new database has been created.
[root@007 ~]# /etc/init.d/vnstat status
vnstatd is stopped
[root@007 ~]# /etc/init.d/vnstat start
Starting vnstatd:                     

vnstat常用的命令选项如下:下图是安装后在服务器查看的数据

vnstat -h #显示最近24小时的流量情况 
vnstat -d #显示最近30天的流量情况 
vnstat -m #显示最近12个月的流量情况 
vnstat -l #显示实时的流量情况 
vnstat -t #显示所有记录中,流量使用最多的10天

        除此外,网上也有一些以图示方法显示流量数据的工具,比如:vnstat PHP frontend。官网地址:vnStat PHP frontend

        下载下来移至PHP运行目录,修改一下配置文件config.php.如下:

[root@007 ~]# wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz
...
Length: 57460 (56K) [application/x-gzip]
Saving to: “vnstat_php_frontend-1.5.1.tar.gz”
[root@007 ~]# sudo tar zxvf vnstat_php_frontend-1.5.1.tar.gz #修改config.php配置文件 
$iface_title['eth1'] = 'PublicNet';

然后在流星器里访问即可实现图表查看流量数据:

二、关于Linux的软中断信号(signal)的一点内容

    signal信号全称软中断信号,是用来通知进程发生了异步事件。是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制。

    UNIX定义了许多信号,比如SIGINT表示中断字符信号,也就是Ctrl+C的信号,SIGBUS表示硬件故障的信号;SIGCHLD表示子进程状态改变信号;SIGKILL表示终止程序运行的信号等等。Linux信号机制基本上是从Unix系统中继承过来的。早期Unix系统中的信号机制比较简单和原始,只有信号值小于SIGRTMIN的信号(即1-31)。在Linux中对信号在保留原有信号的基础上进行了扩充,Linux中的信号可以通过 kill -l查看,列表如下:

#Linux中的信号可以通过 kill -l查看,也可以通过/usr/include/sys/signal.h中查看
[root@04007 shell]# kill -l1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

    从两个不同的角度分类,信号可以分为:可靠信号与不可靠信号(可靠性角度);实时信号与非实时信号(与时间的关系角度)。不过实际可以看作是一个分类,非实时信号都不支持排队,都是不可靠信号;实时信号都支持排队,都是可靠信号。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。各信号的意义如下:

#define SIGHUP  进程由於控制终端死去或者控制终端发出起命令 
#define SIGINT  键盘中断所产生的信号 
#define SIGQUIT  键盘终止 
#define SIGILL  非法的指令 
#define SIGTRAP   进程遇到一个追踪(trace)或者是一个中断嵌套 
#define SIGABRT  由abort系统调用所产生的中断信号 
#define SIGIOT  类似於SIGABRT 
#define SIGBUS   进程试图使用不合理的记忆体 
#define SIGFPE  浮点异常 
#define SIGKILL  KILL 
#define SIGUSR1  用户自定义 
#define SIGSEGV  段错误 
#define SIGUSR2  用户自定义 
#define SIGPIPE  管道操作时没有读只写 
#define SIGALRM 由alarm系统调用产生的timer时钟信号 
#define SIGTERM 收到终端信号的进程 
#define SIGSTKFLT 堆叠错误 
#define SIGCHLD  子进程向父进程发出的子进程已经stop或者终止的信号 
#define SIGCONT  继续运行的信号 
#define SIGSTOP  stop 
#define SIGTSTP  键盘所产生的stop信号 
#define SIGTTIN   当运行在後状态时却需要读取stdin的资料 
#define SIGTTOU   当运行在後状态时却需要写向stdout 
#define SIGURG   socket的紧急情况 
#define SIGXCPU  进程超额使用CPU分配的时间 
#define SIGXFSZ  进程使用了超出系统规定文件长度的文件 
#define SIGVTALRM  内部的alarm时钟过期 
#define SIGPROF  在一个程式段中描绘时钟集过期 
#define SIGWINCH 终端视窗的改变 
#define SIGIO 非同步IO 
#define SIGPOLL  SIGIO pollable事件发生 

        在上面的列表中看到了一个眼熟的东西:SIGUSR2,对USR2这个信号就是我们平滑重启PHP命令中使用的kill -USR2 php的PID值中的信号意义 。而正是unix系统考虑了预留这么一个USR2信号从而可以让php在其软件中支持使用此信息进行平滑重启。专业讲USR2信号实现平滑重载所有php的worker进程并重新载入配置和二进制模块,信号太多,作为应用层的程序员我觉得也没有必要全部清楚。了解以下这些信号即可吧:

SIGINT    也就是Ctrl+C的信号
SIGKILL  表示终止程序运行的信号
SIGHUP   按下Ctrl-z将进程置于后台时发送的信号
SIGQUIT 与SIGINT类似,但由QUIT字符(通常是Ctrl+\)来控制,比如使用top查看系统情况时按Ctrl+\即是发送SIGQUIT信号。
SIGCHLD表示子进程状态改变信号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/419095.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

misc流量分析

一、wireshark语法 1、wireshark过滤语法 &#xff08;1&#xff09;过滤IP地址 ip.srcx.x..x.x 过滤源IP地址 ip.dstx.x.x.x 过滤目的IP ip.addrx.x.x.x 过滤某个IP &#xff08;2&#xff09;过滤端口号 tcp.port80tcp.srcport80 显示TCP的源端口80tcp.dstport80 显示…

Python和C++多尺度导图

&#x1f3af;要点 热化学属性观测蒙特卡罗似然比灵敏度分析时间尺度上动力学化学催化反应动力学建模自动微分电化学分析模型反应动力学数学模型渔业生态不确定性模型敏感性分析空间统计地理模型分析技术多维数据表征实现生成艺术图案流苏物体长度比&#xff0c;面积比和复杂度…

深度学习实战:如何利用CNN实现人脸识别考勤系统

1. 何为CNN及其在人脸识别中的应用 卷积神经网络&#xff08;CNN&#xff09;是深度学习中的核心技术之一&#xff0c;擅长处理图像数据。CNN通过卷积层提取图像的局部特征&#xff0c;在人脸识别领域尤其适用。CNN的多个层次可以逐步提取面部的特征&#xff0c;最终实现精确的…

Django+Vue3前后端分离学习(二)(重写User类)

一、重写User类&#xff1a; 1、首先导入User类&#xff1a; from django.contrib.auth.models import User 2、然后点在User上&#xff0c;按住ctrl 点进去&#xff0c;发现 User类继承AbstractUser Ctrl点进去AbstractUser&#xff0c;然后将此方法全部复制到自己APP的mo…

3 html5之css新选择器和属性

要说css的变化那是发展比较快的&#xff0c;新增的选择器也很多&#xff0c;而且还有很多都是比较实用的。这里举出一些案例&#xff0c;看看你平时都是否用过。 1 新增的一些写法&#xff1a; 1.1 导入css 这个是非常好的一个变化。这样可以让我们将css拆分成公共部分或者多…

WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率

介绍 随着互联网数据的爆炸式增长&#xff0c;爬虫技术成为了获取信息的重要工具。在实际应用中&#xff0c;如何提升浏览器自动化的效率是开发者常常面临的挑战。Chrome DevTools Protocol&#xff08;CDP&#xff09;与Selenium WebDriver相结合&#xff0c;为浏览器自动化提…

还不会剪音乐?试试这四款在线音频剪辑

音频剪辑很多人都没有接触过。其实这并不是一个难事&#xff0c;我们甚至可以用一些简单的工具来给自己做个简单的BGM&#xff0c;最近我尝试了几款不同的音频剪辑工具。今天就来跟大家分享一下我的使用体验&#xff0c;看看哪款工具更适合你的需求。 一、福昕音频剪辑 网址&…

Oracle rman 没有0级时1级备份和0级大小一样,可以用来做恢复 resetlogs后也可以

文档说了 full backup 不能 用于后续的level 1&#xff0c;没说level 1没有level 0 是不是level 1就是level 0&#xff1f; GOAL What are incremental backups? Why are archivelogs still required to recover a database from an online incremental backup? Discuss th…

python学习13:对excel格式文件进行读写操作

读取excel的话需要下载第三方库&#xff1a; 常用的库:xlrd(读),xlwt(写),xlutils,openpyxl[-----pip install xxx-------] 这里推荐openpyxl pip install openpyxl excel读取的基本操作 # 2)基本操作: # 2.1)打开文件,获取工作簿 filename rD:\stdutyZiLiao\pythoneProje…

动态化-鸿蒙跨端方案介绍

一、背景 &#x1f449; 华为在2023.9.25官方发布会上宣布&#xff0c;新的鸿蒙系统将不再兼容安卓应用&#xff0c;这意味着&#xff0c;包括京东金融APP在内的所有安卓应用&#xff0c;在新的鸿蒙系统上将无法运行&#xff0c;需要重新开发专门适用于新鸿蒙系统的专版APP。 …

日语输入法平假名和片假名切换

在学日语输入法的时候&#xff0c;我们在使用罗马音输入的时候&#xff0c;在进行平假名和片假名切换&#xff1a; 1、使用电脑在打字&#xff0c;日语输入法切换的时候使用 Shift Alt 如果日语输入法显示为 A 需要切换为 あ的话可以按Caps Lock键 。&#xff08;相当于中文…

zblog自动生成文章插件(百度AI写作配图,图文并茂)

最近工作比较忙&#xff0c;导致自己的几个网站都无法手动更新&#xff0c;于是乎也想偷个懒把&#xff0c;让AI帮忙打理下自己的网站。我接触chatgpt等AI工具还是比较早了&#xff0c;从openai推出gpt3.5就一直在用&#xff0c;说实话&#xff0c;开始的时候用AI自动更新网站还…

「C++系列」日期/时间

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff1a;人工智能教程 文章目录 一、日期/时间1. C标准库&#xff08;C20之前&#xff09;<ctime>库中的关键组件&#xff1a; 2…

lnmp - tp6.0的安装和简单使用

概述 使用了很长时间的Mac M2芯片的电脑在之前使用虚拟机之前总有一些bug不是那么好用&#xff0c;周末之余重新安装了一下centos虚拟机&#xff0c;搭建了lnmp环境&#xff0c;打算自己挤时间&#xff0c;做一点应用&#xff0c;作为一次新的小小的尝试。 安装&更新 ce…

OCC开发_变高箱梁全桥建模

概述 上一篇文章《OCC开发_箱梁梁体建模》中详细介绍了箱梁梁体建模的过程。但是&#xff0c;对于实际桥梁&#xff0c;截面可能存在高度、腹板厚度、顶底板厚度变化&#xff0c;全桥的结构中心线存在平曲线和竖曲线。针对实际情况&#xff0c;通过一个截面拉伸来实现全桥建模显…

算法复杂度 —— 数据结构前言、算法效率、时间复杂度、空间复杂度、常见复杂度对比、复杂度算法题(旋转数组)

目录 一、数据结构前言 1、数据结构 2、算法 3、学习方法 二、 算法效率 引入概念&#xff1a;算法复杂度 三、时间复杂度 1、大O的渐进表示法 2、时间复杂度计算示例 四、空间复杂度 计算示例&#xff1a;空间复杂度 五、常见复杂度对比 六、复杂度算法题&…

《JavaEE进阶》----12.<SpringIOCDI【扫描路径+DI详解+经典面试题+总结】>

本篇博客主要讲解 扫描路径 DI详解&#xff1a;三种注入方式及优缺点 经典面试题 总结 五、环境扫描路径 虽然我们没有告诉Spring扫描路径是什么&#xff0c;但是有一些注解已经告诉Spring扫描路径是什么了 如启动类注解SpringBootApplication。 里面有一个注解是componentS…

【学习笔记】3GPP WG SA5 Rel-19标准化工作管理和编排

3GPP WG SA5 Rel-19标准化工作涵盖了管理和编排要求、管理阶段2和管理流程&#xff0c;以及阶段3 OpenAPI和YANG解决方案集&#xff0c;以在多供应商环境中为5G网络提供完整的管理互操作性能力。 SA5以WG SA1通过紧密跟踪其他3GPP工作组的进展&#xff0c;这些工作组产生新的网…

如何使div居中?CSS居中终极指南

前言 长期以来&#xff0c;如何在父元素中居中对齐一个元素&#xff0c;一直是一个让人头疼的问题&#xff0c;随着 CSS 的发展&#xff0c;越来越多的工具可以用来解决这个难题&#xff0c;五花八门的招式一大堆&#xff0c;这篇博客&#xff0c;旨在帮助你理解不同的居中方法…

【机器人工具箱Robotics Toolbox开发笔记(二)】Matlab中机器人工具箱的下载与安装

Matlab机器人工具箱(Robotics Toolbox)可从Peter Corke教授提供的网站上免费下载。网址为:http://www.petercorke.com/Robotics_Toolbox.html。 图1 网站所提供的机器人工具箱版本 在Downloading the Toolbox栏目中单击here按钮进入下载页面,然后在该页面中填写国家、组织…