Linux服务器记录并查询历史操作记录

vins-mono前端详解(2)——imu预积分 本篇文章详细讲解了vins-mono中imu预积分内容,包括复杂的公式推导。 阅读详情
AI摘要

本文介绍了一种在Linux服务器上记录用户操作的方法,并提供了一个实用的脚本来查询这些记录。通过修改profile文件并创建自定义脚本,管理员可以有效地监控和回溯用户的活动。

Linux服务器在使用过程中,经常会有除自己之外的其他人员使用。并不是每个人都对Linux服务器特别熟悉,难免会有一些操作导致服务器报错。

因此,监控Linux服务器的操作并记录下来,是非常有必要的!

history是查询当前连接所操作的命令,通过编写以下内容添加至/etc/profile的原有内容之后,将每个连接的操作都进行记录,并保存在特定位置。

vi /etc/profile

添加内容如下:

#history record
history
RQ=`date "+%Y%m%d"`
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/record ]
then
mkdir /tmp/record
chmod 777 /tmp/record
fi
if [ ! -d /tmp/record/${LOGNAME}/${RQ} ]
then
mkdir -p /tmp/record/${LOGNAME}/${RQ}
chmod 300 /tmp/record/${LOGNAME}/${RQ}
fi
export HISTSIZE=8192
SJ=`date "+%H:%M:%S"`
export HISTFILE="/tmp/record/${LOGNAME}/${RQ}/${USER_IP}@${LOGNAME}.$SJ"
chmod 600 /tmp/record/${LOGNAME}/*record* 2>/dev/null

然后保存并退出,执行以下命令,使得编写的配置生效。

source /etc/profile

将操作记录保存在/tmp/record/用户名/日期/登录IP@用户名.时间,

例如:/tmp/record/root/20170801/192.168.108.140@root.16:02:41

历史操作命令已经记录在上述文件中,可以直接查看。

但是为了查询方便,可以再编写一个查询的脚本。使用root用户登录,创建bin文件夹,命令如下:

mkdir /root/bin

创建查询脚本record:

vi /root/bin/record

添加以下内容:

#!/bin/sh
user=${LOGNAME}
time=`date +%Y%m%d`
ip=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`

while [ $# -gt 0 ]
do
        case $1 in
        -u|--user) user=$2;
                   shift 2;
                   ;;
        -t|--time) time=$2;
                   shift 2;
                   ;;
        -p|--ip)  ip=$2;
                   shift 2;
                   ;;
        -l|--list)
                  export HISTFILE="/tmp/record/$user/$time";
                  echo $HISTFILE;
                  ls $HISTFILE;
                  exit 0;
                  ;;
        *)
                echo "usage: record [ -u|-t|-p|-t| --user|--time|--ip|--list]
                -u --user:      username;
                -t --time:      The date required to query;
                -p --ip:        Query the IP ;
                -l --list:      Show the list of record files.
        Notice:
                -l --list:      This parameter must be used as the last parameter,
                                and only the display of the file path,
                                not the file contents."
                exit 0;
     ;;
 esac
done

export HISTFILE="/tmp/record/$user/$time"
echo Path: $HISTFILE/ | tr -d '\n'
ls $HISTFILE | grep $ip
#export RecordFile="$HISTFILE/$ip*"
#echo Contents:
#cat $RecordFile


保存并退出,使用root用户在任意目录下面都可以使用record命令进行查询历史操作记录。

注:只有当连接退出之后,才会保存操作记录。不指定参数的话,会使用当前连接的默认参数!

具体参数使用情况如下:



默认查询(查询当前用户,当前IP的历史连接的操作记录)

record

将执行相应命令显示出来文件,进行打开,即可查看。(此处我已进行修改,除了l或者list参数以外,可以自动展示出来历史记录。由于历史操作太多,暂时进行注释。)


本人能力一般,希望大家多多指教!

Quartus II 13.1 出现 ‘‘can‘t find design entity <Filename>‘‘ 问题的解决方法 Quartus II 13.1 出现 ''can't find design entity '' 问题的解决方法 阅读详情

相关推荐

Windows显卡TDR超时导致Unity崩溃?手把手教你修改注册表延长响应时间

本文详细解析了Windows显卡TDR超时导致Unity崩溃的问题,并提供了修改注册表延长响应时间的完整解决方案。通过调整TdrDelay和TdrDdiDelay键值,开发者可以有效避免D3D11设备丢失错误,提升Unity编辑器的稳定性。文章还包含显卡驱动优化、系统性能调优等实用技巧,帮助开发者彻底解决编辑器崩溃问题。

weixin_33737774的博客 623

Linux系统中如何查看TCP连接数

初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链接,而如果一旦连接上,在keeyalive 的存活时间内(KeepAliveTimeout,默认5秒)都不用重新打开连接,因此解决的方法就是加大apache的最大连接数。然后wc -l统计。net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

lingshengxiyou的博客 4119

【RT-Thread】从零到一:RT-Thread Studio工程创建与程序下载全流程实战

本文详细介绍了RT-Thread Studio开发环境的安装与使用,从工程创建到程序下载的全流程实战指南。通过具体案例演示了如何在STM32平台上快速开发RT-Thread应用,包括时钟配置、内存优化、构建调试等关键技巧,帮助开发者高效完成嵌入式系统开发。

weixin_30336061的博客 544

Linux查看某个端口的连接数

Linux查看某个端口的连接数 回到顶部 一、查看哪些IP连接本机 netstat -an 回到顶部 二、查看TCP连接数 1)统计80端口连接数 netstat -nat | grep -i "80" | wc -l 2)统计httpd协议连接数 ps -ef | grep httpd | wc -l 3)统计已连接上的,状态为“established netstat -anp | grep ESTABLISHED | wc -l 4)、查出哪个IP地址连接最多,将

u010074988的博客 1247

第一节:从Chat_Bot 到 AI_Agent——一个范式转换

本文系统剖析了工业级AI代理系统ClaudeCode的设计原理与工程实践。通过对比ChatBot与Agent的三个本质差异:自主循环决策vs单轮应答、环境交互vs纯文本I/O、持久状态管理vs无状态对话,揭示了构建生产级Agent系统的关键挑战。文章详细解析了ClaudeCode的五层架构设计、1800+文件组成的运行时系统,包括工具调度、权限管理、状态持久化等核心机制,并阐述了从简单API调用到完整Agent系统的演进路径。

2201_75869398的博客 68

《QEMU/KVM源码分析与应用》读书笔记1 —— 第1章 QEMU与KVM概述

《QEMU/KVM源码分析与应用》学习笔记1 —— 第一章 QEMU与KVM概述

phmatthaus的专栏 1984

history查看历史操作记录,并显示操作时间

在查看历史的操作记录有两种方式 1.在用户的目录下的.bash_history文件中 [root@node1 ~]# vi ~/.bash_history reboot vi /etc/sysconfig/network-scripts/ifcfg-eth0 setup service netwok restart service network restart ping 192.168.11

Silence Ray的博客 2万+

【AutoSAR】【以太网】TCP/IP 栈详述与配置

目录 一、TCP/IP栈架构 二、TCP\IP栈的可扩展性 三、以太网协议V4 四、以太网协议 V6 五、基于IP的协议 六、函数调用序列图 一、TCP/IP栈架构 根据以上架构图,该栈主要包括:UPD\TCP\DHCP\ICMP\IPV4\IPV6\ARP; 二、TCP\IP栈的可扩展性 TCP\IP栈为适应不同的应用场景需求,将分为三类: 配置工程里的配置项: 三、以太网协议V4 1 IPV4 Internet Protocol (IP)是T.

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 5696

Linux 查看用户操作记录

使用history命令,查看自己的操作记录,但如果你是root用户,如何查看其它用户的操作记录呢?   其实history命令只是把当前用户目录下的~/.bash_History文件内容列出来而已。   一般而言,history展示的操作记录是没有时间的,可以在/etc/bashrc文件中加入下列代码:   HISTFILESIZE=2000 HISTSIZE=2000 HISTT

gaobudong1234的博客 2万+

22、常见加密哈希算法及安全机制解析

本文详细解析了多种常见加密哈希算法,包括SHA系列、RIPEMD、Tiger、HAVAL、Whirlpool等,涵盖其工作原理、安全性与性能对比。同时探讨了哈希攻击方式如预映像攻击和彩虹表,并介绍了盐、MAC、HMAC等防御机制。结合密码存储、消息完整性验证及区块链应用案例,分析了不同场景下的算法选择建议,并展望了哈希算法在创新、融合与标准化方面的未来发展趋势。

seed的博客 392

《QGIS快速入门与应用基础》151:批量属性值赋值(字段计算器)

本文介绍了QGIS中字段计算器的批量属性值赋值方法,重点讲解了简单赋值(统一值和递增序列)的操作步骤与表达式应用。文章首先强调数据备份、字段类型确认等必要前提,随后详细解析字段计算器的界面功能分区和打开方式。通过具体场景示例,展示了如何为图层统一赋值固定值或生成连续编号序列,并提供了文本、数字、日期等不同字段类型的表达式模板。文中特别提醒新手优先创建新字段而非直接更新现有字段,以避免数据丢失风险,同时推荐使用$id和rownum()函数实现基础序列生成。该教程适合GIS初学者快速掌握批量属性编辑的核心技能。

LuckyHanMo的博客 489

Linux下查看历史操作记录

Linux下查看历史操作记录 2012-04-17 10:23:05 我来说两句 收藏 我要投稿 last命令可以用来查看用户的登陆记录。 history命令可以查看命令的执行历史。 www.2cto.com 常用日志文件如下:     access-log   纪录HTTP/web的传输     acct/pacct   纪录用户命令     aculog     纪录MODEM的活动     btmp      纪录失败的纪录     lastlog     纪录最近几次成功

weixin_52428496的博客 1万+

【华为OD机试真题】7、字符串筛选排序 | 机试真题+思路参考+代码解析(C++、Java、Py)

题目描述 >输入一个由N个大小写字母组成的字符串 按照ASCII码值从小到大进行排序 查找字符串中第K个最小ASCII码值的字母(k>=1) 输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0) k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引 如果有重复字母则输出字母的最小位置索引

KJ.JK 2267

基于Linux的小项目-在线词典

接触到的基于Linux的第一个实战小项目,在众多大牛的协助下完美实现。

weixin_49606782的博客 1777

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

基于TCP协议和数据库的在线词典项目

在线词典 功能:基于Linux操作系统,网络编程和数据库实现在线词典 客户端可以注册,登入,查询历史信息等操作,使用基于TCP的多线程并发服务器,并使用sqlite3数据库实现单词的导入以及对用户信息的管理。 1.注册:若用户名已经注册过,重新注册 2.登录:用户名或密码错误需重新登录 3.查询:输入要查的单词,#键结束查询 4.历史:可以查询当前用户历史查找过的单词 5.退出:退出在线词典 客户端相关代码 客户端主函数相关代码 #include "./inc/dict_socket.h" void ma

zkq_zkq的博客 2455

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Linux 网络编程6 在线词典

该项目为HQ嵌入式Linux应用项目,主要运用知识:Sqlite3 数据库基本操作,TCP/IP多并发编程,文件IO,。

HSYDHASGD的博客 130

linux查找历史记录内容,linux中查看历史记录

linux中查看历史记录以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!1.linux如何查看用户所有的历史操作记录1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:用户名称用户的机器名称...

weixin_42131443的博客 4966

linux 进程历史信息,linux如何查看用户所有的历史操作记录

linux如何查看用户所有的历史操作记录以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:用户名称用户的机器名称或tty号远程主机地址用户登...

weixin_42346935的博客 5624

linux文件操作记录,附查询历史操作记录文件shell

本shell是配合前一个记录用户历史操作记录shell的,代码如下:#!/bin/sh -# filename getrecorduser=time=while [ $# -gt 0 ]docase $1 in-u|--user) user=$2shift 2;;-t|--time) time=$2shift 2;;-*) echo "$0:$1 Wrong Options!" &g...

weixin_35995377的博客 1929

linux 查看登录记录,Linux查看用户登陆历史记录

可以保存每个用户登录后的所有操作PS1="`whoami`@`hostname`:"'[$PWD]'historyUSER_IP=`who -u am i 2>/dev/null| awk '{print查看历史,列出历史提交记录gitlog命令行输出查看历史记录的简洁的版本gitlog--oneline命令行输出用 --graph 选项,查看历史中什么时候出现了分支git log ...

weixin_39895977的博客 4149

在linux用户下查看当前用户或者历史用户的操作记录

在linux用户下查看当前用户或者历史用户的操作记录

秘密博客 3647

Linux曾经登录用户清单,Linux—— 记录所有登陆用户的历史操作记录

前言记录相应的人登陆服务器后,做了那些操作,这个不是我自己写的,因为时间久了,原作者连接也无法提供,尴尬。步骤history是查询当前连接所操作的命令,通过编写以下内容添加至/etc/profile的原有内容之后,将每个连接的操作都进行记录,并保存在特定位置。vi /etc/profile添加内容如下:#history recordhistoryRQ=`date "+%Y%m%d"`USER_IP...

weixin_40001309的博客 372

linux通过日志查找出用户历史操作记录,历史日志_linux查看历史操作记录_淘题吧...

㈠ SQL server如何查看SQL的历史进程日志打开Log Explorer -> Attach Log File -> 选择SQL Server服务器和登陆方式 -> Connect ->在Database Name中选择数据库 -> Attach-> 左面对话框版中Browse-> View Log-> 就可以看到log记录权了想恢复的话: ...

weixin_30977485的博客 1120
上一篇: windows路由表设置
下一篇: Linux中查找指定大小或者指定内容的文件
我逍遥
博客等级 码龄12年 29粉丝 26原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值