zoukankan      html  css  js  c++  java
  • Django项目:堡垒机(Linux服务器主机管理系统)--03--03堡垒机在Linux系统里记录会话日志01/02

    请先确保已经安装了虚拟机以及python3

    python相关软件安装流程图解——linux 安装python3——Python-3.7.1

    .

     1 ————————安装django 开始————————
     2 login as: root 
     3 root@192.192.168.126's password: 123456
     4 [root@localhost ~]# python3
     5 >>> import django
     6 >>> exit()
     7 [root@localhost ~]# pip3 install --upgrade pip
     8 [root@localhost ~]# pip3 install --default-timeout=1000 Django==2.1.4
     9 [root@localhost ~]# python3
    10 >>> import django
    11 >>> print(django.get_version())
    12 2.1.4
    13 >>> exit()
    14 ————————安装django 结束————————
    安装django

    python相关软件安装流程图解——虚拟机操作——复制虚拟机主机——CentOS-7-x86_64-DVD-1810


    安装测试 strace跟踪线程

     1 ————————安装strace跟踪线程 开始————————
     2 [root@localhost ~]# yum -y install strace           
     3 [root@localhost ~]# ssh root@192.192.168.110        |
     4 root@192.192.168.110's password:123456              |
     5                                                     | [root@localhost ~]# ps -ef
     6                                                     | UID        PID  PPID  C STIME TTY          TIME CMD
     7                                                     | root      5999  5936  0 08:06 pts/2    00:00:00 ssh root@192.192.168.110
     8                                                     | [root@localhost ~]# sudo strace -p 5999
     9 [root@localhost ~]# l                               | read(4, "l", 16384)                     = 1
    10                                                     | [root@localhost ~]# sudo strace -p 5999 -o eye.log
    11 [root@localhost ~]# A                               | 
    12                                                     | [root@localhost ~]# cat eye.log                                    
    13                                                     | [root@localhost ~]# cat eye.log |grep 'read(4'
    14                                                     | read(4, "A", 16384)                     = 1
    15 ————————安装strace跟踪线程 结束————————
    安装strace跟踪线程


    测试 自动输入账号密码的插件

     1 """
     2 ————————sshpass可以在命令行直接使用密码来进行远程连接和远程拉取文件 开始————————
     3 [root@localhost ~]# yum -y install sshpass
     4 [root@localhost ~]# sshpass -p 123456 ssh -p 22 root@192.192.168.110
     5 [root@localhost ~]# ip addr
     6 ————————用python调用sshpass 开始————————
     7 [root@localhost ~]# python3
     8 >>> import subprocess
     9 >>> subprocess.run("sshpass -p 123456 ssh root@192.192.168.110 -o StrictHostKeyChecking=no",shell=True)
    10 ————————另启一个会话查看————————
    11 [root@localhost ~]# ps -ef
    12 UID        PID  PPID  C STIME TTY          TIME CMD
    13 root      5147  5146  0 09:41 pts/8    00:00:00 ssh root@192.192.168.110 -o StrictHostKeyCh
    14 [root@localhost ~]# sudo strace -fp 5147 -t -o eye.log
    15 [root@localhost ~]# cat eye.log  
    16 ————获取进程号 开始————
    17 [root@localhost ~]# ps -ef | grep 'root@192.192.168.110'
    18 [root@localhost ~]# ps -ef | grep 'root@192.192.168.110' | grep ssh
    19 [root@localhost ~]# ps -ef | grep 'root@192.192.168.110' | grep ssh | grep -v sshpass
    20 [root@localhost ~]# ps -ef | grep 'root@192.192.168.110' | grep ssh | grep -v sshpass | awk '{ print $2 }'
    21 ————获取进程号 结束————
    22 ————————用python调用sshpass 结束————————
    23 ————————sshpass可以在命令行直接使用密码来进行远程连接和远程拉取文件 结束————————
    24 """
    用python调用sshpass


    用python调用sshpass




    获取进程号

     1 """
     2 ————————获取进程号,唯一标识 开始————————
     3 [root@localhost ~]# python3
     4 >>> import subprocess
     5 >>> subprocess.run("sshpass -p 123456 ssh root@192.192.168.110 -E wybs123 -o StrictHostKeyChecking=no",shell=True)
     6 ————————另启一个登陆会话————————
     7 [root@localhost ~]# python3
     8 >>> import subprocess
     9 >>> subprocess.run("sshpass -p 123456 ssh root@192.192.168.110 -E wybs456 -o StrictHostKeyChecking=no",shell=True)
    10 ————————另启一个会话查看————————
    11 [root@localhost ~]# ps -ef | grep 'root@192.192.168.110' | grep ssh | grep -v sshpass | grep  wybs123 | awk '{ print $2 }'    
    12 [root@localhost ~]# ps -ef | grep  wybs123 | grep ssh | grep -v sshpass | awk '{ print $2 }'    
    13 ————————获取进程号,唯一标识  结束————————
    14 """
    获取进程号,唯一标识


    SH脚本测试

     1 """
     2 E:堡垒机eyeFortressackendsession_tracker.sh 复制到 CentOS-7 的 /home/ 目录下
     3 ————————SH脚本测试 开始————————
     4 [root@localhost ~]# sh /home/session_tracker.sh 
     5 [root@localhost ~]# sh /home/session_tracker.sh wybs123 99 
     6 ————————SH脚本测试 结束————————
     7 ————————用python3测试SH脚本 开始————————
     8 [root@localhost ~]# python3
     9 >>> import subprocess
    10 >>> subprocess.run("sshpass -p 123456 ssh root@192.192.168.110 -E wybs123 -o StrictHostKeyChecking=no",shell=True)
    11 ————————另启一个会话查看————————
    12 [root@localhost ~]# ps -ef | grep  wybs123 | grep ssh | grep -v sshpass | awk '{ print $2 }' 
    13 [root@localhost ~]# sh /home/session_tracker.sh wybs123 99 
    14 ————————用python3测试SH脚本 结束————————
    15 """
    SH脚本测试

     1 #!/bin/bash
     2 #session_tracker.sh
     3 # ————————————————03堡垒机在Linux系统里记录会话日志 开始————————————————
     4 echo "-------- 启动会话(strace跟踪)记录 --------"
     5 basepath=$(cd `dirname $0`; pwd)
     6 echo "-- SH脚本当前目录的路径:$0 | 上级目录的路径: $basepath --"
     7 #sh 动态路径/Fortress/backend/session_tracker.sh %s %s--
     8 echo "-- 唯一标识: $1 | 新的会话的ID:$2 --"
     9 ssh_uuid=$1
    10 session_obj_id=$2
    11 
    12 #循环获取进程的ID,进行30次,每判断一次停止1秒
    13 for i in $(seq 1 30);do
    14      process_id=$(ps -ef |grep $ssh_uuid |grep ssh |grep -v sshpass |grep -v $0  |awk '{ print $2 }'  )
    15      echo "搜/滤出进程号 |搜索 $ssh_uuid |搜索 ssh |过滤掉  sshpass |过滤掉  $0  |处理 { 打印  $2 } "
    16      #|awk '{ print $2 }' | awk是行处理器--print是awk打印指定内容的主要命令"
    17 
    18      echo "---- 开始判断是否获取到了,进程的ID: $process_id ----"
    19      if [ ! -z $process_id  ];then
    20          echo "-- 已获取到进程ID,准备创建日志目录和文件!-- "
    21          log_path=$basepath/log/`date +%F`
    22          echo "-- 生成会话日志的路径: $log_path | 当天日期:`date +%F` -- "
    23          mkdir -p $log_path
    24          echo "-- 创建目录成功!-- "
    25 
    26          #" -e trace=rean,write 表示只跟踪这2个 | -s 9999 输出长度 | -f 子进程  | -p 进程pid | -t时间 | -o写入文件"
    27          sudo strace -e trace=read,write -s 9999 -f -p $process_id -t -o $log_path/session_$session_obj_id.txt
    28          echo "-- strace跟踪监控:进程ID: $process_id  | 路径: $log_path  | 文件名-会话的ID: $session_obj_id -- "
    29          echo "---退出循环---"
    30          break; 
    31      fi;
    32      #结束判断,停止1秒
    33      sleep 1;     
    34 done;
    35 # ————————————————03堡垒机在Linux系统里记录会话日志 结束————————————————
    #session_tracker.sh


     1 """
     2 ————————安装django 开始————————
     3 login as: root 
     4 root@192.192.168.126's password: 123456
     5 [root@localhost ~]# python3
     6 >>> import django
     7 >>> exit()
     8 [root@localhost ~]# pip3 install --upgrade pip
     9 [root@localhost ~]# pip3 install --default-timeout=1000 Django==2.1.4
    10 [root@localhost ~]# python3
    11 >>> import django
    12 >>> print(django.get_version())
    13 2.1.4
    14 >>> exit()
    15 ————————安装django 结束————————
    16 """
    17 """
    18 ————————安装strace跟踪线程 开始————————
    19 [root@localhost ~]# yum -y install strace           
    20 [root@localhost ~]# ssh root@192.192.168.110        |
    21 root@192.192.168.110's password:123456              |
    22                                                     | [root@localhost ~]# ps -ef
    23                                                     | UID        PID  PPID  C STIME TTY          TIME CMD
    24                                                     | root      5999  5936  0 08:06 pts/2    00:00:00 ssh root@192.192.168.110
    25                                                     | [root@localhost ~]# sudo strace -p 5999
    26 [root@localhost ~]# l                               | read(4, "l", 16384)                     = 1
    27                                                     | [root@localhost ~]# sudo strace -p 5999 -o eye.log
    28 [root@localhost ~]# A                               | 
    29                                                     | [root@localhost ~]# cat eye.log                                    
    30                                                     | [root@localhost ~]# cat eye.log |grep 'read(4'
    31                                                     | read(4, "A", 16384)                     = 1
    32 ————————安装strace跟踪线程 结束————————
    33 """
    34 """
    35 ————————sshpass可以在命令行直接使用密码来进行远程连接和远程拉取文件 开始————————
    36 [root@localhost ~]# yum -y install sshpass
    37 [root@localhost ~]# sshpass -p 123456 ssh -p 22 root@192.192.168.110
    38 [root@localhost ~]# ip addr
    39 ————————用python调用sshpass 开始————————
    40 [root@localhost ~]# python3
    41 >>> import subprocess
    42 >>> subprocess.run("sshpass -p 123456 ssh root@192.192.168.110 -o StrictHostKeyChecking=no",shell=True)
    43 ————————另启一个会话查看————————
    44 [root@localhost ~]# ps -ef
    45 UID        PID  PPID  C STIME TTY          TIME CMD
    46 root      5147  5146  0 09:41 pts/8    00:00:00 ssh root@192.192.168.110 -o StrictHostKeyCh
    47 [root@localhost ~]# sudo strace -fp 5147 -t -o eye.log
    48 [root@localhost ~]# cat eye.log  
    49 ————获取进程号 开始————
    50 [root@localhost ~]# ps -ef | grep 'root@192.192.168.110'
    51 [root@localhost ~]# ps -ef | grep 'root@192.192.168.110' | grep ssh
    52 [root@localhost ~]# ps -ef | grep 'root@192.192.168.110' | grep ssh | grep -v sshpass
    53 [root@localhost ~]# ps -ef | grep 'root@192.192.168.110' | grep ssh | grep -v sshpass | awk '{ print $2 }'
    54 ————获取进程号 结束————
    55 ————————用python调用sshpass 结束————————
    56 ————————sshpass可以在命令行直接使用密码来进行远程连接和远程拉取文件 结束————————
    57 """
    58 """
    59 ————————获取进程号,唯一标识 开始————————
    60 [root@localhost ~]# python3
    61 >>> import subprocess
    62 >>> subprocess.run("sshpass -p 123456 ssh root@192.192.168.110 -E wybs123 -o StrictHostKeyChecking=no",shell=True)
    63 ————————另启一个登陆会话————————
    64 [root@localhost ~]# python3
    65 >>> import subprocess
    66 >>> subprocess.run("sshpass -p 123456 ssh root@192.192.168.110 -E wybs456 -o StrictHostKeyChecking=no",shell=True)
    67 ————————另启一个会话查看————————
    68 [root@localhost ~]# ps -ef | grep 'root@192.192.168.110' | grep ssh | grep -v sshpass | grep  wybs123 | awk '{ print $2 }'    
    69 [root@localhost ~]# ps -ef | grep  wybs123 | grep ssh | grep -v sshpass | awk '{ print $2 }'    
    70 ————————获取进程号,唯一标识  结束————————
    71 """
    72 """
    73 E:堡垒机eyeFortressackendsession_tracker.sh 复制到 CentOS-7 的 /home/ 目录下
    74 ————————SH脚本测试 开始————————
    75 [root@localhost ~]# sh /home/session_tracker.sh 
    76 [root@localhost ~]# sh /home/session_tracker.sh wybs123 99 
    77 ————————SH脚本测试 结束————————
    78 ————————用python3测试SH脚本 开始————————
    79 [root@localhost ~]# python3
    80 >>> import subprocess
    81 >>> subprocess.run("sshpass -p 123456 ssh root@192.192.168.110 -E wybs123 -o StrictHostKeyChecking=no",shell=True)
    82 ————————另启一个会话查看————————
    83 [root@localhost ~]# ps -ef | grep  wybs123 | grep ssh | grep -v sshpass | awk '{ print $2 }' 
    84 [root@localhost ~]# sh /home/session_tracker.sh wybs123 99 
    85 ————————用python3测试SH脚本 结束————————
    86 """
    以上全部测试命令
     1 #!/bin/bash
     2 #session_tracker.sh
     3 # ————————————————03堡垒机在Linux系统里记录会话日志 开始————————————————
     4 echo "-------- 启动会话(strace跟踪)记录 --------"
     5 basepath=$(cd `dirname $0`; pwd)
     6 echo "-- SH脚本当前目录的路径:$0 | 上级目录的路径: $basepath --"
     7 #sh 动态路径/Fortress/backend/session_tracker.sh %s %s--
     8 echo "-- 唯一标识: $1 | 新的会话的ID:$2 --"
     9 ssh_uuid=$1
    10 session_obj_id=$2
    11 
    12 #循环获取进程的ID,进行30次,每判断一次停止1秒
    13 for i in $(seq 1 30);do
    14      process_id=$(ps -ef |grep $ssh_uuid |grep ssh |grep -v sshpass |grep -v $0  |awk '{ print $2 }'  )
    15      echo "搜/滤出进程号 |搜索 $ssh_uuid |搜索 ssh |过滤掉  sshpass |过滤掉  $0  |处理 { 打印  $2 } "
    16      #|awk '{ print $2 }' | awk是行处理器--print是awk打印指定内容的主要命令"
    17 
    18      echo "---- 开始判断是否获取到了,进程的ID: $process_id ----"
    19      if [ ! -z $process_id  ];then
    20          echo "-- 已获取到进程ID,准备创建日志目录和文件!-- "
    21          log_path=$basepath/log/`date +%F`
    22          echo "-- 生成会话日志的路径: $log_path | 当天日期:`date +%F` -- "
    23          mkdir -p $log_path
    24          echo "-- 创建目录成功!-- "
    25 
    26          #" -e trace=rean,write 表示只跟踪这2个 | -s 9999 输出长度 | -f 子进程  | -p 进程pid | -t时间 | -o写入文件"
    27          sudo strace -e trace=read,write -s 9999 -f -p $process_id -t -o $log_path/session_$session_obj_id.txt
    28          echo "-- strace跟踪监控:进程ID: $process_id  | 路径: $log_path  | 文件名-会话的ID: $session_obj_id -- "
    29          echo "---退出循环---"
    30          break; 
    31      fi;
    32      #结束判断,停止1秒
    33      sleep 1;     
    34 done;
    35 # ————————————————03堡垒机在Linux系统里记录会话日志 结束————————————————
    session_tracker.sh
  • 相关阅读:
    多个表单项的动态校验
    js遍历循坏二维数组,显示天气情况
    纯css3 实现的焦点图
    实现元素水平和垂直居中的问题
    简易商品购物车
    用jquery的animate动画做成的左侧菜单伸缩
    MongoDB聚合
    NoSQL介绍
    MongoDB索引
    数据库索引简介
  • 原文地址:https://www.cnblogs.com/ujq3/p/10114833.html
Copyright © 2011-2022 走看看