1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:用户名称
用户的机器名称或tty号
远程主机地址
用户登录系统的时间
空闲时间(作用不大)
附加到tty(终端)的进程所用的时间(JCPU时间)
当前进程所用时间(PCPU时间)
用户当前正在使用的命令
$ w
23:04:27 up 29 days, 7:51, 3 users, load average: 0.04, 0.06, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ramesh pts/0 10.1.80.56 22:57 8.00s 0.05s 0.01s sshd: ramesh [priv]
jason pts/1 10.20.48 23:01 2:53 0.01s 0.01s -bash
john pts/2 10.1.80.7 23:04 0.00s 0.00s 0.00s w
此外,可以使用who am i查看使用该命令的用户及进程,使用who查看所有登录用户进程信息,这些查看命令大同小异;
2. 在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录, 可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了(因为history只针对登录用户下执行有效,即使root用户也无法得到其它用户histotry历史)。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。
通过在/etc/profile里面加入以下代码就可以实现:
2.liunx 怎么查看用户登录 的历史记录查看某用户 cat /home/username/.bash_history 的操作历史
使用root登陆使用last -x可查看用户登陆历史。
last 命令:
功能说明:列出目前与过去登入系统的用户相关信息。
语 法:last [-adRx][-f ][-n ][帐号名称…][终端机编号…]
补充说明:单独执行last指令,它会读取位于/var/log目录下,
名称为wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。
参 数:
-a 把从何处登入系统的主机名称或IP地址,显示在最后一行。
-d 将IP地址转换成主机名称。
-f 指定记录文件。
-n 或- 设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息
3.linux查看历史操作记录这个是某位高人写的。希望对你有帮助。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。
通过在/etc/profile里面加入以下代码就可以实现: #PS1=”`whoami`@`hostname`:”'[$PWD]'
#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/${LOGNAME} ]
then
mkdir /tmp/dbasky/${LOGNAME}
chmod 300 /tmp/dbasky/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +” %Y%m%d_%H%M%S”`
export HISTFILE=”/tmp/dbasky/${LOGNAME}/${USER_IP}.dbasky.$DT”
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null可以看到在使用history命令的时候是没时间显示,不知道这个命令是什么时候所执行,这个时候可以编辑/etc/bashrc文件,加入如下三行:HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT=”%Y%m%d-%H%M%S: ”
export HISTTIMEFORMAT保存后退出,关闭当前shell,并重新登录
这个时候,在~/.bash_History文件中,就有记录命令执行的时间了
用cat命令显示这个文件,但是却会看到这个时间不是年月日显示的
前言 有的时候,我们要通过对系统的cpu负载等性能数值的查看,来判排查系统产生某种故障(经常死机或者运行速度突然变慢)的原因。但是,简单的top,uptime,w等命令只可以查看当前的负载,而无法查看过去的某一时间段的cpu的负载情况。 下面就介绍一个用于性能分析的命令,其可以用于查看过去的某一时间段的cpu的负载情况(系统性能)。查看某一时间段的cpu使用情况,请直接跳到第七节。一、sar概念 sysstat是Linux 系统中的常用工具包,而sar 是 Linux中sysstat工具包中的用于监控Linux系统性能的工具之一。 sysstat 工具包中包含两种类型的工具:即时查看工具(iostat、mpstat、sar);累计统计工具(sar) 因此sar命令,又叫做系统活动情况报告。不仅可以实时查看服务器的性能,还可以做累计统计。 二、sar可监控的范围 文件的读写情况 系统调用的使用情况 磁盘I/O使用情况 CPU的使用统计 内存使用状况 进程活动 IPC有关的活动 三、sar命令使用环境 sar命令使用格式: sar+ 命令行选项(可选) + 间隔时间(可选) + 次数(可选) 常用来判断一个系统瓶颈问题 查询CPU可用 sar -u 和 sar -q 等来查看查询内存可用 sar -B、sar -r 和 sar -W 等来查看查询io可用 sar -b、sar -u 和 sar -d 等来查看 四、sar命令累计统计的实现过程 系统会通过调用 /usr/lib64/sa/ 中的三个工具(sa1 sa2 sadc)来实现,周期地记录当时的系统性能的信息的功能。 sa1 :收集并将每天的系统性能的信息写入一个二进制的文件中,它是sadc的前端程序 sa2 :收集每天的系统活跃的信息并写入总结性的文件中,其作为 sar的前端程序 sadc :收集系统的动态数据的数据并写入一个二进制的文件中,其作为 sar 工具的后端 五、sar的日志 sar是由有类似日志切割的功能的,它会依据/etc/cron.d/sysstat中的计划任务,将日志放入/var/log/sa/中 注:日志为二进制文件,不可使用more、less、vim工具查看,必须使用sar或sadf 可以根据需求修改该计划任务 如要查看某一时间段的服务器的性能的其中一个方法就是:使用sar命令,查看当天的日志文件 sar -f /var/log/sa/sa15 [root@ lib64]#sar-f/var/log/sa/sa15Linux3.10.0-327.el7.x86_64(ops-node7)07/15/2018_x86_64_(24CPU)12:00:01AMCPU%user%nice%system%iowait%steal%idle12:10:01AMall1.350.000.850.120.0097.6712:20:01AMall1.320.000.860.110.0097.7112:30:02AMall1.370.000.870.110.0097.6512:40:01AMall1.320.000.910.110.0097.6612:50:01AMall1.350.000.890.110.0097.6501:00:01AMall1.360.000.870.110.0097.6601:10:01AMall1.360.000.850.110.0097.6801:20:01AMall1.350.000.890.100.0097.6601:30:01AMall1.320.000.890.110.0097.6801:40:01AMall1.290.000.950.110.0097.6501:50:01AMall1.350.000.880.120.0097.6402:00:01AMall1.340.000.880.110.0097.6802:10:01AMall1.330.000.900.110.0097.6502:20:01AMall1.360.000.870.120.0097.6502:30:01AMall1.350.000.850.120.0097.6802:40:01AMall1.410.000.920.120.0097.5602:50:01AMall1.570.000.950.130.0097.3503:00:01AMall4.210.000.810.160.0094.8103:10:01AMall2.500.000.870.130.0096.5003:20:01AMall1.370.000.870.120.0097.6503:30:01AMall1.360.000.950.130.0097.5603:40:01AMall1.480.000.970.240.0097.3003:50:01AMall1.350.010.910.130.0097.6004:00:01AMall1.390.000.950.190.0097.4704:10:01AMall1.360.000.990.130.0097.52 注意: sar查看性能或其日志时,使用的12/24小时制;日志的切割是昨天晚上12点到今天12点为一天;默认只保留一个月的日志 六、sar命令参数及输出项详解 【1】格式 用法:sar + 选项 + 时间间隔(可选) + 次数 (可选) interval: 取样周期,单位是秒count:取样次数,默认值为1options:命令行选项 【2】常用选项 -A 所有报告的总和-B 输出内存页面的统计信息-b 输出I/O和传送速率的统计信息-C 输出进程统计信息及每秒创建的进程数-d 输出每一个块设备的活动信息-H 输出交换空间利用率信息-h 输出帮助信息-p 输出友好设备名字,以方便查看,常与-d和-n参数结合使用-q 输出进程队列长度和系统平均负载状态统计信息-R 输出内存页面的统计信息-r 输出内存和交换空间的统计信息-S 输出交换空间利用率信息-t 读取 /var/log/sa/下的某日志的数据时显示其中记录的原始时间-u 输出整体CPU使用情况的统计信息-V 输出版本信息-v 输出内核表状况统计信息(inode、文件和其他内核表的统计信息)-W 输出系统交换的统计信息-w 输出任务创建与系统转换统计信息-y 输出终端设备的活动信息-----------I 输出指定中断的统计信息,后方可加参数{...|SUM|ALL|XALL} ... 指定中断号SUM 指定输出每秒接收到的中断总数ALL 指定输出前16个中断XALL 指定输出全部的中断信息-----------P 输出指定的部分的CPU的统计信息,后方可加参数{cpu|ALL}cpu 指定cpuALL 输出单个和整体cpu的统计数据-----------n 输出网络设备(网卡)状态统计信息,后方可加参数{DEV|EDEV|NFS|NFSD|SOCK|ALL} DEV 输出网络设备的统计信息EDEV 输出网络设备的错误统计信息NFS 输出NFS客户端的活动统计信息NFSD 输出NFS服务器的活动统计信息SOCK 输出网络套接字的使用统计信息ALL 输出所有类型的网络活动统计信息-----------f 从文件中读取数据信息。一般读取sar日志,也可读取-o选项生成的文件,后方要加文件名-o 将sar的输出信息保存到文件中,后方要加文件名-i 指定间隔时长,单位为秒-s 指定输出统计数据的起始时间(格式为hh:mm:ss;例如01:00:00) -e 指定输出统计数据的截至时间,通常与-S选项连用。无数值时默认为18:00:00(格式为hh:mm:ss;例如09:00:00) 【3】输出项 <1>cpu的输出 sar -u %usr CPU在用户模式下,执行进程的时间百分比 %nice CPU在用户模式下,用于nice操作,所占用CPU总时间的百分比 %system CPU处在系统模式(内核态)下,执行进程的时间百分比 %iowait CPU用于等待I/O操作完成(等待输入输出完成),占用CPU总时间的百分比 %steal 管理程序为另一个虚拟进程提供服务而等待虚拟CPU的百分比%idle CPU空闲时间百分比 注意: 如果%iowait的值过高,表示硬盘存在I/O瓶颈 如果%idle值高,表示CPU较空闲如果%idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量 如果%idle 的值持续低于10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU <2>I/O和传送速率输出 sar -b tps 每秒向磁盘设备请求数据的次数,包括读、写请求,其为rtps与wtps的和。每一次IO下发后会先将多个请求合并为一个I/O磁盘请求,这里tps指请求合并后的请求计数rtps 每秒向磁盘设备的读请求次数 wtps 每秒向磁盘设备的写请求次数 bread/s 每秒钟从物理设备读入的数据量,单位为 块/s bwrtn/s 每秒钟向物理设备写入的数据量,单位为 块/s <3>设备使用情况输出 sar -d DEV 磁盘设备,加上用参数-p可以打印出sda等磁盘设备名称;如不加参数-p,设备则显示为dev253-0等tps 每秒向磁盘设备请求数据的次数,包括读、写请求,其为rtps与wtps的和。每一次IO下发后会先将多个请求合并为一个I/O磁盘请求,这里tps指请求合并后的请求计数rd_sec/s 每秒读扇区的次数wr_sec/s 每秒写扇区的次数avgrq-sz 平均每次设备I/O操作的数据大小(扇区)avgqu-sz 磁盘请求队列的平均长度await 从请求磁盘到系统处理完,每次请求的平均消耗时间,包括请求队列等待时间(单位是毫秒)svctm 系统处理每次请求的平均时间,不包括在请求队列中消耗的时间%util I/O请求占CPU的百分比 <4>网络设备统计信息输出 sar -n EDEV IFACE 网络设备名rxpck/s 每秒接收的包数量txpck/s 每秒传输的包数量rxbyt/s 每秒接收的字节数(单位为byte)txbyt/s 每秒传输的字节数(单位为byte)rxkB/s 每秒收的数据量(单位为kB)txkB/s 每秒发的数据量(单位为kB)rxcmp/s 每秒接收压缩包的数量txcmp/s 每秒传输压缩包的数量rxmcst/s 每秒接收的多播(multicast)包的总数排查网络设备故障 <5>网络设备故障信息输出 EDEV |egrep ‘eth0|IFACE’ (本次指定了网卡etho0,可填入其他网卡) IFACE网络设备名rxerr/s每秒接收的坏包数量txerr/s传输包时每秒发生错误的数量coll/s传输包时每秒发生冲突的数量rxdrop/s接收包时,每秒丢弃的包的数量(缺乏缓存导致)txdrop/s传输包时,每秒丢弃的包的数量(缺乏缓存导致)txcarr/s传输包时,每秒发生的传输错误的数量rxfram/s接收包时,每秒发生帧校验错误的数量rxfifo/s接收包时,每秒钟缓冲区溢出错误的数量txfifo/s传输包时,每秒钟缓冲区溢出错误的数量 <6>内存分页状态输出 sar -B pgpgin/s每秒从磁盘空间或交换空间置换到内存的字节数(单位为KB)pgpgout/s每秒从内存置换到磁盘空间或交换空间的字节数(单位为KB)fault/s每秒钟系统产生的缺页数(主缺页加次缺页)majflt/s每秒钟产生的主缺页数pgfree/s每秒被放入空闲队列中的页个数pgscank/s每秒被kswapd扫描的页个数pgscand/s每秒直接被扫描的页个数pgsteal/s每秒钟从cache中被清除来满足内存需要的页个数%vmeff每秒清除的页占总扫描页的百分比 <7>进程队列长度和平均负载状态输出 sar -q runq-sz 运行队列的长度,等待运行的进程数量 plist-sz 进程列表中进程和线程的数量 ldavg-1 最后1分钟的系统平均负载 ldavg-5 过去5分钟的系统平均负载 ldavg-15 过去15分钟的系统平均负载 <8>内存和交换空间状态输出 sar -r kbmemfree空闲的内存数量(单位为KB)kbmemused已使用的内存数量,不包含内核使用的内存(单位为KB)%memused已使用内存的百分数kbbuffers内核缓冲区buffer,使用的内存数量(单位为KB)kbcached内核高速缓存cache数据使用的内存数量(单位为KB)kbcommit保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap)%commitkbcommit与所有内存总量的百分比 <9>系统交换活动信息输出 sar -W pswpin/s 每秒系统换入的交换页面数量 pswpout/s 每秒系统换出的交换页面数量 七、sar使用实例-查看某一时间段的情况 <1>查看凌晨1点到3点的cpu sar -s 01:00:00 -e 03:00:00 <2>查看凌晨1点到3点的系统的平均负载 若要看某时间段其他性能,加上对应选项 sar -s 01:00:00 -e 03:00:00 -q <3>查看本月3号的cpu 注意: 该操作需要去查看sar的日志(第五节已经介绍一次) 默认只保存一个月的 sar查看性能或其日志时,注意自己的使用的是12还是24小时制 日志的切割是昨天晚上12点到今天12点为一天 cd/var/log/sa/sar -f sa03几种查看linux版本信息的方法:1. uname -a
2. cat /proc/version
3. cat /etc/issue
4. lsb_release -a
详解 lsb_release -a
1. 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:
1. [root@3.5.5Biz-46 ~]# lsb_release -a
2. LSB Version: 1.3
3. Distributor ID: RedHatEnterpriseAS
4. Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 1)
5. Release: 4
6. Codename: NahantUpdate1
7. [root@3.5.5Biz-46 ~]#
这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版
在每个用户的家目录里,看文本命令很多,如: cat \ more \ less \ vi 等等这些命令都可以看某个用户的 .bash_history 文件。
例:# more ~user/.bash_history看 user 用户的历史命令,但是你要访问的权限才行。
忘说了,看的是上次的历史命令 :em02:
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)