分享

Linux下记录SSH操作日志

 大头祥子 2014-01-10
Linux下记录SSH操作日志
2013-07-29 08:26:41     我来说两句       作者:wuyaweiwude
收藏    我要投稿
Linux下记录SSH操作日志
使用ssh登录管理主机时,为了方便后续查看操作日志,可将ssh操作时的命令及输出保存到指定的日志文件中。 
SSH登录主机时可采用如下命令: 
Java代码  
ssh username@server | tee -a logfile.txt  
其中tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中。 
如果每次SSH时都这样操作有些繁琐,并且没准哪次就忘了追加记录日志功能。使用如下步骤让本机的ssh程序自动添加日志功能: 
1、首先创建存放日志的文件夹并开放读写权限 
Java代码  
$ mkdir ~/ssh_logs/  
$ sudo chmod -R 777 ~/ssh_logs/  
2、将原有ssh程序修改为另外一个名字,然后创建一个执行脚本,脚本中调用原来的ssh程序,只是在调用的时候添加了之前说的tee命令 
Java代码  
$ sudo mv /usr/bin/ssh /usr/bin/ssh
Linux下记录SSH操作日志
2013-07-29 08:26:41     我来说两句       作者:wuyaweiwude
收藏    我要投稿
Linux下记录SSH操作日志
使用ssh登录管理主机时,为了方便后续查看操作日志,可将ssh操作时的命令及输出保存到指定的日志文件中。 
SSH登录主机时可采用如下命令: 
Java代码  
ssh username@server | tee -a logfile.txt  
其中tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中。 
如果每次SSH时都这样操作有些繁琐,并且没准哪次就忘了追加记录日志功能。使用如下步骤让本机的ssh程序自动添加日志功能: 
1、首先创建存放日志的文件夹并开放读写权限 
Java代码  
$ mkdir ~/ssh_logs/  
$ sudo chmod -R 777 ~/ssh_logs/  
2、将原有ssh程序修改为另外一个名字,然后创建一个执行脚本,脚本中调用原来的ssh程序,只是在调用的时候添加了之前说的tee命令 
Java代码  
$ sudo mv /usr/bin/ssh /usr/bin/ssh_ori  
$ sudo vi /usr/bin/ssh  
新建ssh文件内容如下:    
---------------------------------------------------------------------  
#! /bin/sh  
mkdir -p ~/ssh_logs  
IP=$(echo $1 | grep -oP "((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))")  
LOGNAME=${IP}_$(date +"%Y%m%d_%T")  
ssh_ori $@ | tee -a ~/ssh_logs/${LOGNAME}.log  
---------------------------------------------------------------------  
脚本中首先利用正则表达式将访问IP提取出来,然后根据IP和当前时间戳决定日志文件名称,最后调用原有ssh程序(添加tee命令功能)  
3、添加执行权限 
Java代码  
$ sudo chmod a+x /usr/bin/ssh  
    后续使用ssh登录主机进行操作时会将操作及输出写入到对应的日志文件中,日志文件格式为【访问IP_8位日期_时分秒.log】举例: 
每次执行【ssh 192.168.1.100 -l user1】 或者 【ssh user1@192.168.1.100】时(不支持使用主机名)会根据当前时间及访问IP生成一个新的日志文件:【192.168.1.100_20130726_17:36:18.log】,文件中保存了此次ssh会话的所有操作及输出,便于后续问题排查。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多