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:\堡垒机\eye\Fortress\backend\session_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:\堡垒机\eye\Fortress\backend\session_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

 

posted @ 2018-12-13 16:35  颜言  阅读(511)  评论(0编辑  收藏  举报