负载均衡技术原理

一、原理                                                                         图1 负载均衡原理图     看图说话,基于上图原理的负载均衡有硬件设备也有软件设备。现在常见的是四层或七层交换,所以负载均衡设备也就被称为是四层到七层交换机。     二、四层交换                                             图2 四层交换拓扑图   三、七层交换                                             图3 七层交换拓扑图

This is a sticky post! continue reading?

ElasticSearch几个概念[转]

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。 我们建立一个网站或应用程序,并要添加搜索功能,令我们受打击的是:搜索工作是很难的。我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。Elasticsearch旨在解决所有这些问题和更多的。 ES的几个概念 cluster      代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。 shards      代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。 replicas      代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。 recovery      代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。 river      代表es的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法。它是以插件方式存在的一个es服务,通过读取river中的数据并把它索引到es中,官方的river有couchDB的,RabbitMQ的,Twitter的,Wikipedia的,river这个功能将会在后面的文件中重点说到。 gateway      代表es索引的持久化存储方式,es默认是先把索引存放到内存中,当内存满了时再持久化到硬盘。当这个es集群关闭再重新启动时就会从gateway中读取索引数据。es支持多种类型的gateway,有本地文件系统(默认),分布式文件系统,Hadoop的HDFS和amazon的s3云存储服务。 discovery.zen      代表es的自动发现节点机制,es是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。 Transport      代表es内部节点或集群与客户端的交互方式,默认内部是使用tcp协议进行交互,同时它支持http协议(json格式)、thrift、servlet、memcached、zeroMQ等的传输协议(通过插件方式集成)。

This is a sticky post! continue reading?

使用mysqlslap模拟对MySQL的压力测试

mysqlslap是MySQL 5.1.4以上版本自带的工具,可以对MySQL进行模拟压力测试. mysqlslap的运行分三个阶段:1.创建测试用的数据库,表,存储程序以及测试数据等(这个阶段使用单个客户端连接)2.进行压力测试(这个阶段可以指定多个客户端连接)3.清理阶段(比如:断开连接,删除表等)(这个阶段使用单个客户端连接) mysqlslap的一些参数:–defaults-file,配置文件存放位置–create-schema,指定测试的schema,如果不指定则默认创建mysqlslap–concurrency,并发数–engines,测试引擎,可以有多个,用分隔符隔开。–iterations,迭代的实验次数–socket,socket,文件位置–debug-info,打印内存和CPU的信息–only-print,只打印测试语句而不实际执行–auto-generate-sql,自动产生测试SQL–auto-generate-sql-load-type,测试SQL的类型。类型有mixed,update,write,key,read。–number-of-queries,执行的SQL总数量–number-int-cols,表内int列的数量–number-char-cols,表内char列的数量–query=name,使用自定义的存储过程或sql语句来执行测试 [root@centos190 bin]# mysqlslap -uroot -p –auto-generate-sql –concurrency=100 –number-of-queries=1000 –number-char-cols=4 –number-int-cols=7 –engine=innodb,myisam Enter password: Benchmark Running for engine innodb Average number of seconds to run all queries: 6.252 seconds Minimum number of seconds to run all queries: …

Read more »

This is a sticky post! continue reading?

使用SysBench进行MySQL性能测试

使用SysBench可以对MySQL性能进行测试.首先需要创建测试数据(含100W行数据的数据表) [root@QLB test]# sysbench –test=oltp –oltp-table-size=1000000 –mysql-db=test –mysql-user=testdb –mysql-password=’123456′ prepare sysbench 0.4.12: multi-threaded system evaluation benchmark No DB drivers specified, using mysql Creating table ‘sbtest’… Creating 1000000 records in table ‘sbtest’… 创建好测试数据之后,运行MySQL benchmark: [root@QLB test]# sysbench –test=oltp –oltp-table-size=1000000 –mysql-db=test –mysql-user=testdb …

Read more »

This is a sticky post! continue reading?

让遇到问题的python脚本打印错误然后继续执行

import traceback try: #do some stuff 1/0 #stuff that generated the exception except: traceback.print_exc() pass print "goes here"

This is a sticky post! continue reading?

position 0: ordinal not in range(128)” 解决方法

"UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe9 in position 0: ordinal not in range(128)" 解决办法,在该python文件的前面加上如下几句,问题得到解决。 import sysdefault_encoding = ‘utf-8′if sys.getdefaultencoding() != default_encoding:    reload(sys)    sys.setdefaultencoding(default_encoding)

This is a sticky post! continue reading?

简介Linux截屏工具-import[转]

现在很多人都安装了Linux,在应用Linux会遇到很多问题,本文为你详细介绍Linux截屏工具,为你在学习Linux截屏工具时起一定的作用。在Linux中,最简单的截屏工具莫过于import了。 几个常用的import命令介绍给大家: 1 import mypicture.jpg 2 sleep 5; import mypicture.jpg 等待5秒钟后,截取鼠标选择的范围 3 import -frame mypicture.jpg 4 import -window root mypicture.jpg 截取整个屏幕,作用相当于Print Screen键 5 import -frame -window 0xe00003 mypicture.jpg 用于截取window ID为0xe00003的窗口。 你可以使用xwininfo命令获取到特定窗口的window ID ps:截取完成的图片,如果你想了解它的各项参数,可以使用identify命令加图片文件名称就可以了。希望你能学会Linux截屏工具import。

This is a sticky post! continue reading?

10 Useful Sar (Sysstat) Examples for UNIX / Linux Performance Monitoring

Using sar you can monitor performance of various Linux subsystems (CPU, Memory, I/O..) in real time. Using sar, you can also collect all performance data on an on-going basis, store them, and do historical analysis to identify bottlenecks.Sar is part …

Read more »

This is a sticky post! continue reading?

InnoDB数据表空间文件平滑迁移[转]

如何迁移? 从MySQL文档中我们了解到,InnoDB的表空间可以是共享的或独立的。如果是共享表空间,则所有的表空间都放在一个文件里:ibdata1,ibdata2..ibdataN,这种情况下,目前应该还没办法实现表空间的迁移,除非完全迁移,因此不在本次讨论之列;我们只讨论独立表空间的情况。 不管是共享还是独立表空间,InnoDB每个数据表的元数据(metadata)总是保存在 ibdata1 这个共享表空间里,因此该文件必不可少,它还可以用来保存各种数据字典等信息。数据字典中,会保存每个数据表的ID号,每次发生数据表空间新增时,都会使得该ID自增一个值(++1),例如:CREATE TABLE xx ENGINE = InnoDB / ALTER TABLE xx ENGINE = InnoDB 都会使得ID值增加。 有了上面的理解,想要实现InnoDB表空间文件的平滑迁移就很容易了,呵呵。下面是一些例子: 假定我们有2台DB主机,一个是A,一个B,现在想把A上的某个InnoDB表空间文件迁移到B上直接用。 一、迁移失败的例子 直接从A上把表空间文件 yejr.ibd 拷贝到 B 上后,导入表空间,报错,无法使用。这是由于A,B上创建该表时的顺序不一致,导致表的ID不一样,无法导入。 注意:在这里,表空间文件直接拷贝的前提是该表空间处于"干净"状态下,也就是所有的数据均已经刷新到磁盘中,否则可能导致无法使用或部分数据丢失。 1. 在B上将旧的表空间废弃 (root@imysql.cn/17:52:47)[yejr]>ALTER TABLE yejr DISCARD TABLESPACE; Query OK, 0 rows affected (0.00 …

Read more »

This is a sticky post! continue reading?

Linux Shell 命令总结

1. 前言 本文介绍了常用的Linux shell命令,包括date、cut、sort、uniq、sed、vi、diff、find等,同时给出尽可能使用的实例以便于理解。 2. Linux shell命令 2.1 date 用法:date [选项] 显示时间格式(以+开头,后面接格式) (1) 以固定格式显示时间:date + “%Y%m%d%H” (2) 显示明天的日期:date -d “tomorrow” +”%Y-%m-%d” (3) 显示前天的日志:date -d “1 days ago” +”%Y-%m-%d” 2.2 cut 用法:cut –c{字符串范围} –d{字段间分割符} –f{字段索引编号} (1)查看在线用户:who | cut –c1-8 (2)从系统文件/etc/passwd中获取用户名列表:cut –d: …

Read more »

This is a sticky post! continue reading?

MySQL字段数据类型/长度及表类型扫盲

一、MySQL 字段数据类型/长度 1、数值类型 列类型              需要的存储量 TINYINT                1 字节 SMALLINT             2 个字节 MEDIUMINT          3 个字节 INT                       4 个字节 INTEGER             4 个字节 BIGINT                 8 个字节 FLOAT(X)           4 如果 X < = 24 或 8 如果 25 < = X < = 53 FLOAT                 4 个字节 DOUBLE              8 个字节 DOUBLE PRECISION     8 个字节 REAL                    …

Read more »

This is a sticky post! continue reading?

Mysql show Status参数详解[转]

状态名 作用域 详细解释 Aborted_clients Global 由于客户端没有正确关闭连接导致客户端终止而中断的连接数 Aborted_connects Global 试图连接到MySQL服务器而失败的连接数 Binlog_cache_disk_use Global 使用临时二进制日志缓存但超过binlog_cache_size值并使用临时文件来保存事务中的语句 的事务数量 Binlog_cache_use Global 使用临时二进制日志缓存的事务数量 Bytes_received Both 从所有客户端接收到的字节数。 Bytes_sent Both 发送给所有客户端的字节数。 com*   各种数据库操作的数量 Compression Session 客户端与服务器之间只否启用压缩协议 Connections Global 试图连接到(不管是否成功)MySQL服务器的 连接数 Created_tmp_disk_tables Both 服务器执行语句时在硬盘上自动创建的临时表的数量 Created_tmp_files Global mysqld已经创建的临时文件的数量 Created_tmp_tables Both …

Read more »

This is a sticky post! continue reading?

Nginx FastCGI环境下 PHP不记录error日志的解决

把PHP的errorlog目录权限改成777,错误可以正常记录了。

This is a sticky post! continue reading?

访问日志分析

当前WEB服务器中联接次数最多的ip地址 #netstat -ntu |awk ‘{print $5}’ |sort | uniq -c| sort -nr  查看日志中访问次数最多的前10个IP #cat access_log  |cut -d ‘ ‘ -f 1 |sort |uniq -c | sort -nr | awk ‘{print $0 }’ | head -n 10 |less 查看日志中出现100次以上的IP #cat access_log …

Read more »

This is a sticky post! continue reading?

MySQL锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制 的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议。 MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最 显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。 MySQL这3种锁的特性可大致归纳如下。 l         表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 l         行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 l         页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 从上述特点可见,很难笼统地说哪种锁更好,只能就具体应用的特点来说哪种锁更合适!仅从锁的角度 来说:表级锁更适合于以查询为主,只有少量按索引条件更新数据的应用,如Web应用;而行级锁则更适合于有大量按索引条件并发更新少量不同数据,同时又有 并发查询的应用,如一些在线事务处理(OLTP)系统。这一点在本书的“开发篇”介绍表类型的选择时,也曾提到过。下面几节我们重点介绍MySQL表锁和 InnoDB行锁的问题,由于BDB已经被InnoDB取代,即将成为历史,在此就不做进一步的讨论了。 MyISAM表锁 MyISAM存储引擎只支持表锁,这也是MySQL开始几个版本中唯一支持的锁类型。随着应用对事务完整性和 并发性要求的不断提高,MySQL才开始开发基于事务的存储引擎,后来慢慢出现了支持页锁的BDB存储引擎和支持行锁的InnoDB存储引擎(实际 InnoDB是单独的一个公司,现在已经被Oracle公司收购)。但是MyISAM的表锁依然是使用最为广泛的锁类型。本节将详细介绍MyISAM表锁 的使用。 查询表级锁争用情况 可以通过检查table_locks_waited和table_locks_immediate状态变量来分析系统上的表锁定争夺: mysql> show status like ‘table%’; +———————–+——-+ | Variable_name         | Value | +———————–+——-+ …

Read more »

This is a sticky post! continue reading?

关于MMSEG分词算法[转]

MMSEG是中文分词中一个常见的、基于词典的分词算法(作者主页:http://chtsai.org/index_tw.html),简单、效果相对较好。由于它的简易直观性,实现起来不是很复杂,运行速度也比较快。关于算法的原文,可以参 见:http://technology.chtsai.org/mmseg/ 非 基于词典的算法,一般主要是运用概率统计、机器学习等方面的方法,目前常见的是CRF(Conditional random field,http://en.wikipedia.org/wiki/Conditional_random_field)。此类方法可以让计算机根据现成的资 料,“学习”如何分词。具体的实现可参考(http://nlp.stanford.edu/software/segmenter.shtml)。 MMSEG是一种基于词典的分词算法,以正向最大匹配为主,多种消除歧义的规则为辅。下面来具体看一下: 根 据作者在原文中的阐述,对MMSEG的解释分为“匹配算法(Matching algorithm)”和“消除歧义的规则(Ambiguity resolution rules)”这两部分。“匹配算法”是说如何根据词典里保存的词语,对要切分的语句进行匹配(正向?逆向?粒度?);“消除歧义的规则”是说当一句话可 以这样分,也可以那样分的时候,用什么规则来判定使用哪中分法,比如“设施和服务”这个短语,可以分成“设施_和服_务”,也可以分成“设施_和_服 务”,选择哪个分词结果,就是“消除歧义的规则”的功能。 MMSEG的“匹配方法”有两种: 1.Simple方法,即简单的正向匹配,根据开头的字,列出所有可能的结果。比如“一个劲儿的说话”,可以得到 2.Complex方法,匹配出所有的“三个词的词组”(原文中使用了chunk,这里感觉用“词组”比较合适),即从某一既定的字为起始位置,得到所有可能的“以三个词为一组”的所有组合。比如“研究生命起源”,可以得到 研_究_生 研_究_生命 研究生_命_起源 研究_生命_起源 1.Maximum matching (最大匹配),有两种情况,分别对应于使用“simple”和“complex”的匹配方法。对“simple”匹配方法,选择长度最大的词,用在上文的 例子中即选择“一个劲儿的”;对“complex”匹配方法,选择“词组长度最大的”那个词组,然后选择这个词组的第一个词,作为切分出的第一个词,上文 的例子中即“研究生_命_起源”中的“研究生”,或者“研究_生命_起源”中的“研究”。 2.Largest average word length(最大平均词语长度)。经过规则1过滤后,如果剩余的词组超过1个,那就选择平均词语长度最大的那个(平均词长=词组总字数/词语数量)。比如“生活水平”,可能得到如下词组: 生_活水_平 (4/3=1.33) 生活_水_平 (4/3=1.33) 生活_水平 (4/2=2) 根据此规则,就可以确定选择“生活_水平”这个词组 3.Smallest variance of …

Read more »

This is a sticky post! continue reading?

PHP 常用正则表达式整理[转]

表单验证匹配 验证账号,字母开头,允许 5-16 字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 验证账号,不能为空,不能有空格,只能是英文字母:^\S+[a-z A-Z]$ 验证账号,不能有空格,不能非数字:^\d+$ 验证用户密码,以字母开头,长度在 6-18 之间:^[a-zA-Z]\w{5,17}$ 验证是否含有 ^%&’,;=?$\ 等字符:[^%&',;=?$\x22]+ 匹配Email地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 匹配腾讯QQ号:[1-9][0-9]{4,} 匹配日期,只能是 2004-10-22 格式:^\d{4}\-\d{1,2}-\d{1,2}$ 匹配国内电话号码:^\d{3}-\d{8}|\d{4}-\d{7,8}$评注:匹配形式如 010-12345678 或 0571-12345678 或 0831-1234567 匹配中国邮政编码:^[1-9]\d{5}(?!\d)$ 匹配身份证:\d{14}(\d{4}|(\d{3}[xX])|\d{1})评注:中国的身份证为 15 位或 18 位 不能为空且二十字节以上:^[\s|\S]{20,}$ 字符匹配 匹配由 26 个英文字母组成的字符串:^[A-Za-z]+$ 匹配由 26 个大写英文字母组成的字符串:^[A-Z]+$ 匹配由 26 …

Read more »

This is a sticky post! continue reading?

rsync什么情况下会同步文件?

rsync什么情况下会同步文件呢?这里假设A机同步到B机上,并且rsync同步参数为:vazu,这个参数对做网站镜像的来说完全可以的了。对这组参数的解释如下:-v, –verbose 详细模式输出-a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD-r, –recursive 对子目录以递归模式处理-l, –links 保留软链结-p, –perms 保持文件权限-t, –times 保持文件时间信息-g, –group 保持文件属组信息-o, –owner 保持文件属主信息-D, –devices 保持设备文件信息-z, –compress 对备份的文件在传输时进行压缩处理-u, –update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) 下面对以下几种不同步情况进行测试:1,如果A机文件时间比B机文件时间新,则A会同步文件到B。2,如果A杋文件时间比B机文件时间旧,则A不同步文件到B。3,如果B机文件属主,属组不同于A机,并且A机文件时间不比B机文件时间旧,则会更新B机文件的属主,属组,但不重新同步文件。4,如果B机文件属主,属组不同于A机,并且A机文件时间比B机文件时间旧,则不会更新B机文件的属主,属组,也不重新同步文件。5,如果B机文件权限不同于A机,并且A机文件时间不比B机文件时间旧,则会更新B机文件的权限,但不重新同步文件。6,如果B机文件权限不同于A机,并且A机文件时间比B机文件时间旧,则不会更新B机文件的权限,也不重新同步文件。7,即使A机与B机文件内容(大小)不一样,如果B机文件比A机文件新,也不会同步。 综上可以看出,以vazu这组参数运行rsync时,是以时间为最优先,只有更新的文件才同步文件;如果只是属主属组,权限的不同,则不重新同步文件,而是仅更新这些属性,前提是A机的时间不比B机的时间旧。

This is a sticky post! continue reading?

磁盘性能指标–IOPS理论[转]

机械硬盘的连续读写性很好, 但随机读写性能很差。这是因为磁头移动至正确的磁道上需要时间,随机读写时,磁头不停的移动,时间都花在了磁头寻道上,所以性能不高。  如下图:在存储小文件(图片)、OLTP数据库应用时,随机读写性能(IOPS)是最重要指标。 学习它,有助于我们分析存储系统的性能互瓶颈。下面我们来认识随机读写性能指标–IOPS(每秒的输入输出次数)。   磁盘性能指标–IOPS———————————————————-        IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。     随机读写频繁的应用,如小文件存储(图片)、OLTP数据库、邮件服务器,关注随机读写性能,IOPS是关键衡量指标。     顺序读写频繁的应用,传输大量连续数据,如电视台的视频编辑,视频点播VOD(Video On Demand),关注连续读写性能。数据吞吐量是关键衡量指标。 IOPS和数据吞吐量适用于不同的场合:读取10000个1KB文件,用时10秒  Throught(吞吐量)=1MB/s ,IOPS=1000  追求IOPS读取1个10MB文件,用时0.2秒  Throught(吞吐量)=50MB/s, IOPS=5  追求吞吐量 磁盘服务时间————————————–传统磁盘本质上一种机械装置,如FC, SAS, SATA磁盘,转速通常为5400/7200/10K/15K rpm不等。影响磁盘的关键因素是磁盘服务时间,即磁盘完成一个I/O请求所花费的时间,它由寻道时间、旋转延迟和数据传输时间三部分构成。 寻道时间 Tseek是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms。旋转延迟 Trotation是指盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示。比如,7200 rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms,而转速为15000 rpm的磁盘其平均旋转延迟为2ms。数据传输时间 Ttransfer是指完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数据传输率。目前IDE/ATA能达到133MB/s,SATA II可达到300MB/s的接口数据传输率,数据传输时间通常远小于前两部分消耗时间。简单计算时可忽略。   常见磁盘平均物理寻道时间为:7200转/分的STAT硬盘平均物理寻道时间是10.5ms10000转/分的STAT硬盘平均物理寻道时间是7ms15000转/分的SAS硬盘平均物理寻道时间是5ms   7200   rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = …

Read more »

This is a sticky post! continue reading?

Linux Shell 命令总结

1. 前言 本文介绍了常用的Linux shell命令,包括date、cut、sort、uniq、sed、vi、diff、find等,同时给出尽可能使用的实例以便于理解。 2. Linux shell命令 2.1 date 用法:date [选项] 显示时间格式(以+开头,后面接格式) (1) 以固定格式显示时间:date + “%Y%m%d%H” (2) 显示明天的日期:date -d “tomorrow” +”%Y-%m-%d” (3) 显示前天的日志:date -d “1 days ago” +”%Y-%m-%d” 2.2 cut 用法:cut –c{字符串范围} –d{字段间分割符} –f{字段索引编号} (1)查看在线用户:who | cut –c1-8 (2)从系统文件/etc/passwd中获取用户名列表:cut –d: …

Read more »

This is a sticky post! continue reading?