Recent Comments
Monthly Archives: June 2019
iftop动态显示网络接口流量
安装iftop需要epel源,安装后,直接执行iftop,加上需要的选项 iftop使用的参数(iftop -h) 参数 含义 -i 指定需要检测的网卡 -n 将输出的主机信息都通过IP显示,不进行DNS解析 -B 将输出以byte为单位显示网卡流量,默认是bit -p 以混杂模式运行iftop,此时iftop可以用作网络嗅探器 -N 只显示连接端口号,不显示端口对应的服务名称 -P 显示主机以及端口信息 -F 显示特定网段的网卡进出流量 如iftop -F 192.168.85.0/24 -m 设置输出界面中最上面的流量刻度最大值,流量刻度分5个大段显示 如iftop -m limit -f 使用筛选码选择数据包来计数 如iftop -f filter code -b 不显示流量图形条 -c 指定可选的配置文件 如iftop -c config … Continue reading
lsof命令详解
lsof (list open files)是一个列出当前系统打开文件的工具。在linux系统环境下,任何事物都可以以文件形式存在,通过文件不仅可以访问常规的数据,还可以访问网络连接和硬件。 适应条件:lsof访问的是核心文件和各种文件,所以必须以root用户的身份运行才能充分发挥其功能。 lsof [选项] [绝对路径的文件名] 显示示例 每行显示一个打开的文件,默认如果后面不跟任何东西,将打开系统打开的所有文件 COMMAND :进程名称 PID:进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别到该文件。如cwd、txt等 TYPE:文件类型,如DIR,REG DEVICE:指定磁盘名称 SIZE:文件大小 NODE:索引节点(文件在磁盘上的标识) NAME:打开文件的确切名称 补充:FD列中的文件描述cwd值表示应用程序的当前工作目录,这是该程序启动的目录,除非它本身对这个目录进行更改。txt类型的是程序代码,如应用程序二进制文件本身或者共享库。其次数值表示应用程序的文件描述符,这是打开文件时一个返回的一个整数。 其中u表示该文件被打开处于读取\写入模式,而不是只读或只写模式; r 只读 ; w 只写 ;W表示该应用程序具有对整个文件的写锁(确保每次只能打开一次应用程序实例) 初始打开每个应用程序时,都具有三个文件描述符,从0到2,分别表示标准输入、输出和错误流。因此,大多数应用程序 所打开的FD都是从3开始 TYPE:REG、DIR、CHR、BLK、UNIX、FIFO、IPV4 下面举几个实际的例子: (1)显示使用文件的进程 (2)显示指定进程所打开的文件 (3)显示指定进程号所打开的文件 (4)通过指定的协议、端口、主机等,显示符合条件的进程信息 ls -i:port #某个端口 ls … Continue reading
GitLab各类型账号的权限
这个官网有详细的说明,建议直接去官网查看 https://docs.gitlab.com/ee/user/permissions.html Permissions Users have different abilities depending on the access level they have in a particular group or project. If a user is both in a group’s project and the project itself, the highest permission level is used. On … Continue reading
linux buff/cache过大,如何清理,附清理脚本
在Linux下经常会遇到buff/cache内存占用过多问题,尤其是使用云主机的时候最严重,由于很多是虚拟内存,因此如果buff/cache占用过大的,free空闲内存就很少,影响使用; 通常内存关系是: 普通机器:total=used+free 虚拟机器:total=used+free+buff/cache 现在给大家演示一下,我找了台虚拟机,当然,现在的buff/cache不是很大 在操作之前,要先sync一下,刷新下缓存,避免出现意外(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-Node、已延迟的块 I/O 和读写映射文件) 然后使用命令清除cache缓存 通过3次清除,可以看到内存增加了 这个1、2、3分别是什么意思,自己看官方文档吧 Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free. To free pagecache: * echo 1 > /proc/sys/vm/drop_caches To free dentries and inodes: * echo 2 > /proc/sys/vm/drop_caches To free pagecache, dentries and inodes: * echo 3 > /proc/sys/vm/drop_caches As this is a non-destructive operation, and dirty objects are notfreeable, the user should run “sync” first in order to make sure allcached objects are freed. This tunable was added in 2.6.16. 当然,再拓展一下,你也可以写个自动化的脚本,更有意思 1、编写shell定时任务脚本freemem.sh #! /bin/sh used=`free -m | awk ‘NR==2’ … Continue reading
linux下free命令详解
linux下free命令详解 转载自https://www.cnblogs.com/ultranms/p/9254160.html,感谢原作者 free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。 如果加上 -h 选项,输出的结果会友好很多: 有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数: $ free -h -s 1 上面的命令每隔 1 秒输出一次内存的使用情况,直到你按下 ctrl + c。 由于 free 命令本身比较简单,所以本文的重点会放在如何通过 free 命令了解系统当前的内存使用状况。 输出简介 下面先解释一下输出的内容: Mem 行(第二行)是内存的使用情况。 Swap 行(第三行)是交换空间的使用情况。 total 列显示系统总的可用物理内存和交换空间大小。 used 列显示已经被使用的物理内存和交换空间。 free 列显示还有多少物理内存和交换空间可用使用。 shared 列显示被共享使用的物理内存大小。 … Continue reading
Linux中内存buffer和cache的区别
简单说,buffer就是高速缓存,读写数据(块)的数据缓冲区;cache是读取数据(页)的缓冲区,在CPU上面 buffer 与cache 的区别 A buffer is something that has yet to be “written” to disk. A cache is something that has been “read” from the disk and stored for later use. 更详细的解释参考:Difference Between Buffer and Cache 对于共享内存(Shared memory),主要用于在UNIX 环境下不同进程之间共享数据,是进程间通信的一种方法,一般的应用程序不会申请使用共享内存,笔者也没有去验证共享内存对上面等式的影响。如果你有兴趣,请参考:What … Continue reading
Nginx 实现端口转发
什么是端口转发 文章转自:https://www.xiaoz.me/archives/10578 ,感谢原作者 当我们在服务器上搭建一个图书以及一个电影的应用,其中图书应用启动了 8001 端口,电影应用启动了 8002 端口。此时如果我们可以通过 localhost:8001 //图书 localhost:8002 //电影 但我们一般访问应用的时候都是希望不加端口就访问域名,也即两个应用都通过 80 端口访问。但我们知道服务器上的一个端口只能被一个程序使用,这时候如何该怎么办呢?一个常用的方法是用 Nginx 进行端口转发。Nginx 的实现原理是:用 Nginx 监听 80 端口,当有 HTTP 请求到来时,将 HTTP 请求的 HOST 等信息与其配置文件进行匹配并转发给对应的应用。例如当用户访问 book.douban.com 时,Nginx 从配置文件中知道这个是图书应用的 HTTP 请求,于是将此请求转发给 8001 端口的应用处理。当用户访问 movie.douban.com 时,Nginx 从配置文件中知道这个是电影应用的 HTTP 请求,于是将此请求转发给 … Continue reading
git多个远程仓库管理
我在项目管理时需要实时备份代码,于是想到部署一个备份仓库用来备份代码,查了下资料,发现这篇文章最全面,搬运了过来,感谢原作者,原连接是 https://www.cnblogs.com/bwar/p/9297343.html git多个远程仓库 1. 前言 用GitHub管理自己的开源项目有几年了,最近一年更新得比较多,仓库也越来越多越来越大。有时候感觉GitHub太慢,尤其是最近感觉更为明显,于是萌生了再找个国内类似GitHub的代码托管平台的想法,同时我也还想持续更新GitHub上的仓库,于是需要一个本地仓库(我自己的开发机)多个远程仓库(Github、码云、coding)。 2. 一个远程仓库的git config 我的开源项目Nebula一个基于事件驱动的高性能TCP网络框架的git配置文件.git/config如下: [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote “origin”] url = https://github.com/Bwar/Nebula.git fetch = +refs/heads/*:refs/remotes/origin/* [branch “master”] remote = origin merge = refs/heads/master 3. … Continue reading
centos如何更换时区
centos的设置时区的方式的本质是创建软连接 比如说,一台服务器的时区不正确,查看一下: [root@eueka project]# date Tue Jun 11 23:42:26 EDT 2019 [root@eueka project]# ll /etc/localtime lrwxrwxrwx. 1 root root 38 Feb 17 04:59 /etc/localtime -> ../usr/share/zoneinfo/America/New_York 可以发现,连接的是美国纽约时间,现在更换成亚洲上海 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 确认一下 [root@eueka project]# ll /etc/localtime lrwxrwxrwx 1 root root … Continue reading
CentOS 7 安装 Jenkins
首先还是贴官网路径,照着官网的方法去做不会有错,个人建议不要使用docker,耗费资源更高不说,配置也没有直接安装来得方便。当然,临时使用的话,docker更方便。 https://jenkins.io/zh/doc/book/installing/#linux 原理很简单,配置yum源、yum安装jenkins,配置端口,配置启动用户,将该用户授权给jenkins文件夹,启动jenkins,去浏览器访问jenkins:端口,第一次的密码去提示的文件去找,创建管理员用户,完了。 1.安装 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm –import https://pkg.jenkins.io/redhat-stable/jenkins.io.key yum install jenkins 2.配置 vim /etc/sysconfig/jenkins #监听端口 JENKINS_PORT=”8080″ 3.配置权限 为了不因为权限出现各种问题,这里直接使用root 修改用户为root vim /etc/sysconfig/jenkins #修改配置 $JENKINS_USER=”root” 修改目录权限 chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root … Continue reading