linux命令之监控命令

简单记录一下Linux自带的一些系统状态监控的命令。关于ps和lsof的命令太过复杂,详细用法有空再记录。

1. 用户

  • w 不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,并且统计数据相对who命令来说更加详细和科学。

相似命令:who/whoami/last/logname/tty/

2. 内存

  • free 显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

3. 磁盘吞吐

  • iostat 主要用于监控系统设备的IO负载情况。

4. 进程

  • top 显示,管理执行中的程序。并通过它所提供的互动式界面,用热键加以管理。
  • ps 报告程序状况。
  • pstree -a 以树状图显示进程间的关系

5. 网络

  • netstat 显示网络连接、路由表和网络接口信息。

    netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

6. 系统版本

  • lsb_release -a 获取系统的版本信息。

      No LSB modules are available.
      Distributor ID: Debian
      Description:    Debian GNU/Linux 7.8 (wheezy)
      Release:        7.8
      Codename:       wheezy
    

7. 统计

  • vmstat 展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。
  • swatch 系统监控程序。可用来监控系统记录文件,并在发现特定的事件时,执行指定的动作。
  • lsof 系统级的监控、诊断工具。

    linux 下 “一切皆文件”, 包括但不限于 pipes, sockets, directories, devices, 等等。因此,使用 lsof,你可以获取任何被打开文件的各种信息。

附录

语  法:w [-fhlsuV][用户名称]

参  数: 
  -f  开启或关闭显示用户从何处登入系统。 
  -h  不显示各栏位的标题信息列。 
  -l  使用详细格式列表,此为预设值。 
  -s  使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。 
  -u  忽略执行程序的名称,以及该程序耗费CPU时间的信息。 
  -V  显示版本信息。

语  法: free [-bkmotV][-s <间隔秒数>]

参  数: 
	-b  以Byte为单位显示内存使用情况。 
	-k  以KB为单位显示内存使用情况。 
	-m  以MB为单位显示内存使用情况。 
	-o  不显示缓冲区调节列。 
	-s&lt;间隔秒数&gt;  持续观察内存使用状况。 
	-t  显示内存总和列。 
	-V  显示版本信息。

语  法: iostat [-c|-d][-k|-m][-t][-V][-x][device[…]|ALL][-p[device|ALL]][interval[count]]

参  数:
	-c 仅显示CPU统计信息.与-d选项互斥.
	-d 仅显示磁盘统计信息.与-c选项互斥.
	-k 以K为单位显示每秒的磁盘请求数,默认单位块.
	-p device | ALL
	  与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:
	  # iostat -p hda
	  或显示所有设备
	  # iostat -p ALL
	-t    在输出数据时,打印搜集数据的时间.
	-V    打印版本号和帮助信息.
	-x    输出扩展信息.

语  法:top [bciqsS][d <间隔秒数>][n <执行次数>]

参  数: 
	b  使用批处理模式。 
	c  列出程序时,显示每个程序的完整指令,包括指令名称,路径和参数等相关信息。 
	d<间隔秒数>  设置top监控程序执行状况的间隔时间,单位以秒计算。 
	i  执行top指令时,忽略闲置或是已成为Zombie的程序。 
	n<执行次数>  设置监控信息的更新次数。 
	q  持续监控程序执行的状况。 
	s  使用保密模式,消除互动模式下的潜在危机。 
	S  使用累计模式,其效果类似ps指令的-S参数。

语  法:netstat [-acCeFghilMnNoprstuvVwx] [-A<网络类型>][--ip]

参  数:
	-a (all)显示所有选项,默认不显示LISTEN相关
	-t (tcp)仅显示tcp相关选项
	-u (udp)仅显示udp相关选项
	-n 拒绝显示别名,能显示数字的全部转化成数字。
	-l 仅列出有在 Listen (监听) 的服務状态
	
	-p 显示建立相关链接的程序名
	-r 显示路由信息,路由表
	-e 显示扩展信息,例如uid等
	-s 按各个协议进行统计
	-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到 <span id="_vmstat"></span>

语  法:vmstat [-V] [-n] [delay [count]]

参  数:
  -V表示打印出版本信息;
  -n表示在周期性循环输出时,输出的头部信息仅显示一次;
  delay是两次输出之间的延迟时间;
  count是指按照这个时间间隔统计的次数。

语  法:swatch [-A <分隔字符>][-c <设置文件>][-f <记录文件>][-I <分隔字符>][-P <分隔字符>][-r <时间>][-t <记录文件>]

补充说明:swatchswatch所监控的事件以及对应事件的动作都存放在 swatch的配置文件中。预设的配置文件为拥护根目录下的.swatchrc。然而在Red Hat Linux的预设用户根目录下并没有.swatchrc配置文件,您可将/usr/doc/swatch- 2.2/config_files/swatchrc.personal文件复制到用户根目录下的.swatchrc,然后修改.swatchrc所要监控的事件及执行的动作。

参  数: 
	-A<分隔字符>  预设配置文件中,动作的分隔字符,预设为逗号。 
	-c设置文件>  指定配置文件,而不使用预设的配置文件。 
	-f记录文件>  检查指定的记录文件,检查完毕后不会继续监控该记录文件。 
	-I分隔字符>  指定输入记录的分隔字符,预设为换行字符。 
	-P分隔字符>  指定配置文件中,事件的分隔字符,预设为逗号。 
	-r时间>  在指定的时间重新启动。 

vim的鼠标模式

好久之前就发现这个问题了——vim里没有办法右键复制!也不知道怎么想的,每次复制都是退出一遍,cat之后再复制。今天被基友提醒之后说是鼠标模式的原因!赶忙上网找了啥叫鼠标模式Orz~~~~vim的小技巧还真是多.

鼠标事件有两种处理方式,程序处理和 X 处理。如果 X 负责处理,则是左键选择,中间粘贴。在vim中设置鼠标模式后,要切换给X负责处理,有两个方法:

  1. 按住shift(alt)键,然后选择,此时由 X 处理该选择,copy 选项就 enable 了。如果放掉shift(alt)键,则由 vim处理该选择。
  2. 设置 set mouse= (就是说清空),在这次vim退出之前,永远不再干涉鼠标选择,永远把处理权交给X,这个时候鼠标就处于无模式编辑状态,当然也能用鼠标来切换vim里面的tab窗口了,vim中的编辑光标也不会跟随鼠标了。

我自己的解决的话,就是将之前设定的set mouse=a修改成set mouse=n,也就是只在普通模式下开启鼠标模式。如果需要复制文本的话,就要按v进入可视模式(反正可视模式基本上也是用来复制粘贴删除的= =)。

但是大概更加常用的还是用按下alt键的办法复制吧。

附 鼠标的模式:

n 普通模式
v 可视模式
i 插入模式
c 命令行模式
h 编辑帮助文件时,所有前面的模式
a 所有前面的模式
r |hit-enter| 和 |more-prompt| 提示时
A 可视模式的自动选择

使用vnc/xrdp连接你的Debian

前言:vnc的配置非常简单,简单到虽然界面显示很挫,依然因为惰性而懒得换。嘛,先记录一下再换Orz

安装

安装x11窗口管理器(jwm),该窗口下的终端(xterm),以及vnc服务器(vnc4server)。

apt-get install jwm xterm vnc4server iceweasel

JWM是一个简洁实用的X11窗口管理器,Puppy发行版默认的窗口管理器就是用的jwm。使用C语言编写,最小化编译可以仅使用Xlib库,代码精炼,目标文件小巧(只有130多K),足以说明作者的功底。 JWM是一个简洁实用的X11窗口管理器,Puppy发行版默认的窗口管理器就是用的jwm。使用C语言编写,最小化编译可以仅使用Xlib库,代码精炼,目标文件小巧(只有130多K),足以说明作者的功底。 项目主页:http://joewing.net/programs/jwm/index.shtml

XTerm是一个X Window System上的终端模拟器,用来提供多个独立的SHELL输入输出。

Virtual Network Computing(VNC)是进行远程桌面控制的一个软件。客户端的键盘输入和鼠标操作通过网络传输到远程服务器,控制服务器的操作。服务器的图形界面通过网络传输会客户端显示给用户。给你的感觉就像直接在操作本地计算机一样,只是所有的程序和命令都是在服务器端执行。

iceweasel,你可以当成firefox浏览器。 安装flash,

tar -xzvf xxx.tar.gz
cp libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so
cp -r usr/* /usr/ ## 简单配置vnc

vi /etc/bin/vncserver
$vncPort = 5900 + $displayNumber

新建一个vncserver,默认会在5900的基础上+N。新建vncserver是如果不指定vnc号码,就按照1,2,3的顺序依次递增,端口也就是5901,5902,5903递增。可以按照需求改掉

.vnc/xstartup
#!/bin/sh

temp=$(ps aux | grep [f]irefox-bin | awk '{print $2}')
[ -n "$temp" ] && kill $temp > /dev/null 2>&1
firefox --display=:1 > /dev/null 2>&1
gnome-session& # 启动桌面

给iptables添加规则

-A INPUT -p tcp --dport 5901:XXXX -j ACCEPT
-A INPUT -p tcp --dport 5801:XXXX -j ACCEPT
# 要和vnc的配置文件保持一致。

客户端连接

image

使用windows自带的远程连接

apt-get install xrdp

在本地就使用Mircosoft Remote Desktop,windows自带,Mac在应用商店也可以免费下载。

xrdp.jpg

安装firefox

首先把iceweasel卸载

1. 添加APT源地址

我们需要在/etc/apt/sources.list添加下面的源地址:

deb http://downloads.sourceforge.net/project/ubuntuzilla/mozilla/apt all main

除了使用编辑器外我们还可以通过下面的命令操作来轻松完成:

echo -e "\ndeb http://downloads.sourceforge.net/project/ubuntuzilla/mozilla/apt all main" | sudo tee -a /etc/apt/sources.list > /dev/null

2. 导入密钥Key

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com C1289A29

3. 更新APT源列表

sudo apt-get update

4. 安装软件

# 安装FireFox
sudo apt-get install firefox-mozilla-build
# 安装ThunderBird
sudo apt-get install thunderbird-mozilla-build
# 安装SeaMonkey
sudo apt-get install seamonkey-mozilla-build

5.一些可能有用的安装tips

dpkg: error processing firefox-mozilla-build (--configure):
 package firefox-mozilla-build is not ready for configuration
 cannot configure (current status `half-installed')
Errors were encountered while processing:
 firefox-mozilla-build
E: Sub-process /usr/bin/dpkg returned an error code (1)

apt-get install --reinstall firefox-mozilla-build

几个关于Mac的小技巧

今天新发现了几个Mac的小技巧!还蛮实用的!

  • Cmd按下时点击侧边栏将在新标签页打开文件夹
  • Cmd按下时点击dock上的app或者dock文件夹内的文件,都直达app或者文件所在的目录(这个功能超级实用啊)
  • Spotlight搜索时cmd+回车,直接在文件夹中显示搜索结果(也挺实用的啊)
  • 截图平时常用cmd+shift+4或者cmd+shift+ctl+4截取一个区域,复制内容给朋友看。但是!按下这几个键之后可以再按一下空格键,快速截取当前活跃窗口!

话说有点想做一些软件的速查手册,放在网站的侧边栏上。

显示隐藏文件和文件夹

// 显示
defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder  

// 不显示
defaults write com.apple.finder AppleShowAllFiles -boolean false ; killall Finder

该命令适用于 OS X Mavericks 和 OS X Yosemite 系统。


Linux下手动安装Flash插件

Debian桌面需要安装Flash插件才能看视频,安装方法很简单。打开视频页面时会跳出安装请求,点击下载tar.gz包解压。解压之后会在当前目录得到libflashplayer.soreadme.txt文件和usr文件夹。

cp libflashplayer.so /usr/lib/mozilla/plugins/
# 如果是chrome则对应chrome的插件文件。

cp -r usr/* /usr
# 把usr放在用户目录下也ok

1 2 3 4 5 158 159 160 161 162 163