由于针对服务器操作命令,做有证可查,需要对各个ldap用户,以及系统用户曾经使用过的命令,进行记录备份,并且要求每条命令有具体的操作时间。
一、history命令的默认输出如下
986 service httpd start
987 vi /usr/local/apache/conf/httpd.conf
988 service httpd start
989 ps aux
990 vi /usr/local/apache/conf/httpd.conf
991 service httpd start
992 vi /usr/local/apache/conf/httpd.conf
993 vi /etc/sysconfig/network
994 service httpd start
995 vi /usr/local/apache/conf/httpd.conf
996 vi /etc/sysconfig/network
997 hostname localhost
998 exit
999 history
1000 set
1001 history
这样的结果是因为我们定义了变量
HISTFILESIZE=1000 ###.bash_history 文件大小最大1KB
HISTSIZE=1000 ### 命令条数最多1000条
二、所以在服务器上重新定义一下变量
vi /etc/profile
###插入以下内容
HISTSIZE=10000
HISTFILESIZE=1000000000
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " ### 输出命令时候带时间格式
##保存后 执行 source /etc/profile
此时查看 history 命令输出
990 2011-03-29 16:05:38 vi /usr/local/apache/conf/httpd.conf
991 2011-03-29 16:05:38 service httpd start
992 2011-03-29 16:05:38 vi /usr/local/apache/conf/httpd.conf
993 2011-03-29 16:05:38 vi /etc/sysconfig/network
994 2011-03-29 16:05:38 service httpd start
995 2011-03-29 16:05:38 vi /usr/local/apache/conf/httpd.conf
996 2011-03-29 16:05:38 vi /etc/sysconfig/network
997 2011-03-29 16:05:38 hostname localhost
998 2011-03-29 16:05:38 exit
999 2011-03-29 16:05:39 history
1000 2011-03-29 16:08:00 set
1001 2011-03-29 16:08:17 history
1002 2011-03-29 16:09:11 set
1003 2011-03-29 16:09:58 ls -a
1004 2011-03-29 16:10:44 cat .bash_history
1005 2011-03-29 16:10:49 cat .bash_history |wc -l
1006 2011-03-29 16:11:52 vi /etc/profile
1007 2011-03-29 16:12:36 source /etc/profile
1008 2011-03-29 16:12:37 ls
1009 2011-03-29 16:12:38 history
##已经有了 时间格式 而且超出1000条。
三、这样每天在crontab中对各个用户的 .bash_history 进行备份就可以满足需求了。
ok ,有需要的py,可以动手了哈。。。
转载于:https://blog.51cto.com/lhflinux/529887