Linux记录history命令

转载:https://www.cnblogs.com/andy9468/p/11571224.html

一、编辑文件
sudo vi /etc/profile

二、在文件最后,插入这一段:
# 添加登陆时自动记录
script -t -f -q 2>/var/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.time -a /var/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.his
if [ "$SHLVL" = 1 ]; then
   exit
fi
# run the script command to record everything


三、使之生效
source /etc/profile

日志会记录到:/var/log/user_record/ 目录里。会有很多。

 

对后面的(1)方法的提取文件改写法(强烈推荐)

简单:https://www.cnblogs.com/andy9468/p/12751809.html

记录存储位置:

mkdir -p /usr/local/records

chmod 777 /usr/local/records/
chmod +t /usr/local/records/

 

脚本存储位置:

mkdir -p /usr/local/system_script

 

编写脚本(记录用户执行过的命令):
vim /usr/local/system_script/bash_record.sh

+ View Code

 

说明:history 1 | { read x cmd; echo “$cmd”; }的解释:http://www.mamicode.com/info-detail-2461141.html 

 

使脚本可执行
chmod +x /usr/local/system_script/bash_record.sh

 

/etc/profile末尾追加内容:

vim /etc/profile

1

2

3

4

5

# myscript

# record cmd history

alias su='su -l '

HISTTIMEFORMAT="%F %T "

source /usr/local/system_script/bash_record.sh

说明:

定义su别名,是为了实现切换用户时,强制更新环境变量,避免环境变量未发生改变而引起的,切为低权限用户后,无写文件权限记录history日志。

定义HISTTIMEFORMAT格式,是为了写入history日志时,有命令执行时的时间。将 HISTTIMEFORMAT 变量加入 /etc/profile 文件中,让它对所有用户永久生效。

 

使配置生效
source /etc/profile

 

注意:上述脚本只能记录通过sshd服务端口(通常为22) 连接进入主机的用户操作,不能记录通过其他服务(如webmin)端口接入主机的用户操作。

 


 

一些说明:

记录脚本

cd /usr/local/
mkdir records
chmod 777 records/
chmod +t records/
vim /etc/profile

 

说明:

o+t  

https://www.iteye.com/blog/cocos-1089890

https://blog.51cto.com/13868278/2149028

 

(1)脚本一:推荐(按日期分割记录文件)

+ View Code

 

添加history中每个命令的执行时间:export HISTTIMEFORMAT='%F %T  '

https://zhidao.baidu.com/question/1516093640707389740.html

开发版本:计划实现以下功能:

1、日志中记录命令执行所在路径。——已实现

2、避免记录mysql明文密码。——待实现。已实现函数,未实现正确调用。

脚本如下:

+ View Code

  

 

(2)脚本二:(测试用,不推荐,日志会不断累积)

+ View Code

  

source /etc/profile

https://my.oschina.net/u/3866149/blog/3030842

 

=======================================================================

其他:

美化shell:让Linux命令提示符输出完整路径,且有颜色。

shell脚本:实现对登录主机失败10次以上的ip进行拒绝登录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以记录常用的linux命令,特别是比较长的,非常有用。使用方法:把该Q可执行文件考备份到linux上,任何目录都行,第一次执行用./q的方式执行,第一次执行之后q程序会被加到系统目录,以后每次执行都可以像使用系统命令一样。例如 1.查看保存过的命令 [root@localhost ~]# q 1_____clear 2_____tar -xzvf 3_____tar -czvf 4_____rpm -ivh 5_____lsnrctl status 6_____lsnrctl start 7_____lsnrctl stop 8_____vi /home/oracle/ora/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 9_____/opt/lampp/lampp start 10_____/opt/lampp/lampp restart 11_____/opt/lampp/lampp stop 2.添加新命令 [root@localhost ~]# q -a "sqlplus /as sysdba" 1_____clear 2_____tar -xzvf 3_____tar -czvf 4_____rpm -ivh 5_____lsnrctl status 6_____lsnrctl start 7_____lsnrctl stop 8_____vi /home/oracle/ora/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 9_____/opt/lampp/lampp start 10_____/opt/lampp/lampp restart 11_____/opt/lampp/lampp stop 12_____sqlplus /as sysdba 3.删除命令 [root@localhost ~]# q -d 12 1_____clear 2_____tar -xzvf 3_____tar -czvf 4_____rpm -ivh 5_____lsnrctl status 6_____lsnrctl start 7_____lsnrctl stop 8_____vi /home/oracle/ora/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 9_____/opt/lampp/lampp start 10_____/opt/lampp/lampp restart 11_____/opt/lampp/lampp stop 4.执行保存过的命令 [root@localhost ~]# q 10 Stopping XAMPP for Linux 1.8.1... XAMPP: Stopping Apache with SSL... XAMPP: Stopping MySQL... XAMPP: XAMPP-ProFTPD is not running. XAMPP stopped.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值