• linux不同终端的操作是如何在messages日志中区分的


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

    2018-02-12T15:55:10.845768+08:00|notice|[/bin/bash]|[2018-02-12 15:55:10 root cd test/] return code=[0], execute success by [root] from [pts/0 (9.4.90.52)]
    2018-02-12T15:55:20.790348+08:00|notice|[/bin/bash]|[2018-02-12 15:55:20 root cd /home/test/] return code=[0], 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,显示如下:

    linux-UMLhEm:tty
    /dev/tty6

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

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

    linux-UMLhEm:/dev/pts # tty
    /dev/pts/0

    换一个Xtem端口,查询

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

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

    ps -aux | grep pts查询如下:

    linux-UMLhEm:/dev/pts # ps -aux | grep pts
    root     14385  0.0  0.0 115992  2688 pts/1    Ss+  15:51   0:00 -bash
    root     18769  0.0  0.0 139476  1656 pts/0    R+   17:47   0:00 ps -aux
    root     18771  0.0  0.0 112648   976 pts/0    S+   17:47   0:00 grep --color=auto pts
    root     22908  0.0  0.0 115884  2580 pts/0    Ss   15:44   0:00 -bash
    root     24002  0.0  0.0 115880  2644 pts/2    Ss+  17:18   0:00 -bash

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

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

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

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

    linux-UMLhEm:#tty
    /dev/tty6
    linux-UMLhEm:#echo "test" >/dev/tty0
    test
    linux-UMLhEm:#echo "test" >/dev/tty1
    linux-UMLhEm:#echo "test" >/dev/tty2
    linux-UMLhEm:#echo "test" >/dev/tty6
    test
    linux-UMLhEm:#echo "test" >/dev/tty
    test

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

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

    linux-UMLhEm:/dev/pts # tty
    /dev/pts/0
    linux-UMLhEm:/dev/pts # echo "test" >/dev/pts/0      //输入到当前终端
    test
    linux-UMLhEm:/dev/pts # echo "test" >/dev/tty        //当前终端
    test
    linux-UMLhEm:/dev/pts # echo "test" >/dev/pts/1      //该终端不存在
    -bash: /dev/pts/1: Permission denied
    linux-UMLhEm:/dev/pts # echo "test" >/dev/pts/2      //输出到Xterm打开的另一个窗
    linux-UMLhEm:/dev/pts #
    linux-UMLhEm:/dev/pts # echo "test" >/dev/tty0      //输出到bmc打开的控制台终端
    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命令可以确定当前的终端或者控制台。 

  • 相关阅读:
    MyEclipse 自带的TomCat 新增部署的时候不显示 Deploy Location
    No prohects are avaliable for deployment to this server
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    Dom4j 对XMl解析 新手学习,欢迎高手指正
    电脑的技巧
    Browserify的基本使用
    bower的基本使用
    前端工程化--前端工程化技术栈
    前端工程化--架构说明
    前端工程化-前端工程化说明
  • 原文地址:https://www.cnblogs.com/xingmuxin/p/8445288.html
Copyright © 2020-2023  润新知