今天在定位一个问题时,查看message日志,需要知道message日志中的记录分别是哪个Xterm终端操作的。比较了半天才发现原来日志中可以通过pts来进行区分。如下所示:

  1. --12T15::10.845768+:|notice|[/bin/bash]|[-- :: root cd test/] return code=[], execute success by [root] from [pts/0 (9.4.90.52)]
  1. 2018-02-12T15:55:20.790348+08:00|notice|[/bin/bash]|[2018-02-12 15:55:20 root cd /home/test/] return code=[], execute success by [root] from [pts/1 (9.4.90.52)]

另外,messages日志中会记录操作的执行时间,以及结束时间。比如要执行一个操作,但这个操作要等一段时间才返回,那么这个操作不会马上记录在messages日志中,需要等到这个操作执行完后,才会在日志中有记录,如上日志中,蓝色的时间,为操作执行的时间,绿色部分的时间为操作返回的时间。

下面来重点说下这个pts,我是个菜鸟,竟然这个简单的基本概念也不清楚,于是收集了一些资料学习下。参考资料:http://blog.csdn.net/mountzf/article/details/51735691

    下面来具体操作一下。

1)首先通过bmc打开远程控制台,登陆进去后,输入who和tty,显示如下:

  1. linux-UMLhEm:tty
  2. /dev/tty6

使用Alt + [F1-F6]组合键后,需要重新登陆控制台,在查看tty时,就发现ttyn在发生变化。通过bmc打开的远程控制台,为控制台终端。

2)通过Xtem ssh登陆的终端为伪终端,如下

  1. linux-UMLhEm:/dev/pts # tty
  2. /dev/pts/

换一个Xtem端口,查询

  1. linux-UMLhEm:/dev # tty
  2. /dev/pts/

3)通过ps -aux | grep tty查询,kill -9 pid(tty6)后,发现控制台终端退出,提示重新登陆。

ps -aux | grep pts查询如下:

  1. linux-UMLhEm:/dev/pts # ps -aux | grep pts
  2. root 0.0 0.0 pts/ Ss+ : : -bash
  3. root 0.0 0.0 pts/ R+ : : ps -aux
  4. root 0.0 0.0 pts/ S+ : : grep --color=auto pts
  5. root 0.0 0.0 pts/ Ss : : -bash
  6. root 0.0 0.0 pts/ Ss+ : : -bash

kill -9 pid(pts/2),Xtem上退出登陆。

可以利用命令kill -9 pid杀死Xterm连接的进程。

4)通过echo重定向到不同的终端。

在bmc上的控制台终端,输入如下:

  1. linux-UMLhEm:#tty
  2. /dev/tty6
  3. linux-UMLhEm:#echo "test" >/dev/tty0
  4. test
  5. linux-UMLhEm:#echo "test" >/dev/tty1
  6. linux-UMLhEm:#echo "test" >/dev/tty2
  7. linux-UMLhEm:#echo "test" >/dev/tty6
  8. test
  9. linux-UMLhEm:#echo "test" >/dev/tty
  10. test

  tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上,/dev/tty就是当前进程的控制终端的设备特殊文件。

在Xtem打开的终端,输入如下:

  1. linux-UMLhEm:/dev/pts # tty
  2. /dev/pts/
  3. linux-UMLhEm:/dev/pts # echo "test" >/dev/pts/ //输入到当前终端
  4. test
  5. linux-UMLhEm:/dev/pts # echo "test" >/dev/tty //当前终端
  6. test
  7. linux-UMLhEm:/dev/pts # echo "test" >/dev/pts/ //该终端不存在
  8. -bash: /dev/pts/: Permission denied
  9. linux-UMLhEm:/dev/pts # echo "test" >/dev/pts/ //输出到Xterm打开的另一个窗
  10. linux-UMLhEm:/dev/pts #
  11. linux-UMLhEm:/dev/pts # echo "test" >/dev/tty0 //输出到bmc打开的控制台终端
  12. linux-UMLhEm:/dev/pts # echo "test" >/dev/tty6 //输出到bmc打开的控制台终端

  

FAQ

Q:/dev/console 是什么? 
A:/dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。目前只有在单用户模式下,才允许用户登录控制台。 
Q:/dev/tty是什么? 
A:tty设备包括虚拟控制台,串口以及伪终端设备。/dev/tty代表当前tty设备,在当前的终端中输入 echo “hello” > /dev/tty ,都会直接显示在当前的终端中。 
Q:/dev/ttyS*是什么? 
A:/dev/ttyS*是串行终端设备。 
Q:/dev/tty0与/dev/tty1 …/dev/tty63是什么?它们之间有什么区别? 
A:/dev/tty0代表当前虚拟控制台,而/dev/tty1等代表第一个虚拟控制台,例如当使用ALT+F2进行切换时,系统的虚拟控制台为/dev/tty2 ,当前的控制台则指向/dev/tty2 
Q:如何确定当前所在的终端(或控制台)? 
A:使用tty命令可以确定当前的终端或者控制台。

linux不同终端的操作是如何在messages日志中区分的的更多相关文章

  1. 如何在linux下录制terminal操作?

    相关包: ttyrec: ttyrec is a tty recorder. Recorded data can be played back with the included ttyplay co ...

  2. 提升效率的Linux终端快捷操作汇总

    很多普通 Linux 桌面用户都对使用终端感到排斥和恐惧,其实它没大家想的那么复杂,很多常见操作都可以直接在终端中进行,如:安装软件.升级系统等. 无论你是新手还是 Linux 终端使用的老鸟,系统极 ...

  3. 在Linux上录制终端的操作

    在Linux上录制终端的操作 来源 http://blog.51cto.com/stuart/1831570 一.安装基础软件包 1 [root@test software]# yum install ...

  4. 让linux好用起来--操作使用技巧

    让linux好用起来--操作使用技巧 1   概述 在一个初学者眼里,linux的 CLI 界面没有图形界面那样多彩和友好,会让人产生畏难心理,但是作为一个稍微进阶的linux玩家,自然会积累不少经验 ...

  5. linux 的终端字体色和背景色的修改方法(一)

    更改Linux系统终端的颜色主题 随着Linux系统在服务器端的崛起,Linux也在慢慢进军个人桌面系统领域.如果在使用Linux系统的终端时,对其颜色主题不是很满意,该怎么修改颜色的主题呢?今天笔者 ...

  6. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  7. Linux 的终端及设置

    Linux 的终端及设置 终端是一种字符型设备,有多种类型,通常使用tty 来简称各种类型的终端设备.终端特殊设备文件一般有以下几种: /dev/ttySn 串行端口终端 (Serial Port T ...

  8. linux:终端常用命令 + vi命令修改文件及保存 方法

    首先介绍一下Ubuntu下各个目录的一般作用: /  这就是根目录,一台电脑有且只有一个根目录,所有的文件都是从这里开始的.举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录 ...

  9. linux系统下pdf操作软件pdftk

    二十一.pdf操作软件pdftk pdftk是一个命令行程序,使用计算机终端进行操作. 1.第一步:安装pdftk windows:https://www.pdflabs.com/tools/pdft ...

随机推荐

  1. SQL Access Advisor in Oracle Database 10g

    The SQL Access Advisor makes suggestions about indexes and materialized views which might improve sy ...

  2. Spring Security(十三):5.2 HttpSecurity

    Thus far our WebSecurityConfig only contains information about how to authenticate our users. How do ...

  3. shell去除换行和空格

    #!/bin/bash if [ -f str.txt ] ## 如果str.txt存在,则返回true then strval=$(cat str.txt|awk '{printf "%s ...

  4. 请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母。例如如果第一个字母是S,则继续判断第二个字母,如果第二个字母是a,则输出“星期六”

    请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母.例如如果第一个字母是S,则继续判断第二个字母,如果第二个字母是a,则输出“星期六”.星期的英文单词如下表所示. 星期 ...

  5. js Ajax 请求返回

    1.后台正常返回值 2.后台异常返回值 一 后台正常返回值 二.后台异常返回 场景1:报错 场景2:登录超时,这种场景,需要考虑

  6. flex布局,最后一行左对齐

    拥抱flex 网上查找资料解决办法都是操作数据,个人感觉css问题还是用css来解决(当然问题不同,解决方案不同,这里只是针对某个问题的解决方法,不能解决所有问题,大家视情况而定,如果还是不行欢迎沟通 ...

  7. Mysql MHA高可用集群架构

    ** 记得之前发过一篇文章,名字叫<浅析MySQL高可用架构>,之后一直有很多小伙伴在公众号后台或其它渠道问我,何时有相关的深入配置管理文章出来,因此,民工哥,也将对前面的各类架构逐一进行 ...

  8. 用commander.js构建自己的脚手架工具

    随着前端技术的发展,工程化逐渐成为了一种趋势.但在实际开发时,搭建项目是一件很繁琐的事情,尤其是在对一个框架的用法还不熟悉的时候.于是很多框架都自带一套脚手架工具,在初始化前端项目的时候就可以不用自己 ...

  9. Python-Urllib库详解

    官方文档地址:https://docs.python.org/3/library/urllib.html 什么是Urllib: Urllib是python内置的HTTP请求库: urllib.requ ...

  10. Python_装饰器复习_30

    复习: # 装饰器的进阶 # functools.wraps # 带参数的装饰器 # 多个装饰器装饰同一个函数# 周末的作业 # 文件操作 # 字符串处理 # 输入输出 # 流程控制 # 装饰器# 开 ...