Linux記錄history命令

對後面的(1)方法的提取文件改寫法(強烈推薦)html

記錄存儲位置:web

mkdir -p /usr/local/recordsvim

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

 

腳本存儲位置:ssh

mkdir -p /usr/local/system_script測試

 

編寫腳本(記錄用戶執行過的命令):
vim /usr/local/system_script/bash_record.sh.net

# record cmd history
if [ ! -d /usr/local/records/${LOGNAME} ]

then

mkdir -p /usr/local/records/${LOGNAME}

chmod 300 /usr/local/records/${LOGNAME}

fi

export HISTORY_FILE_DATE_NAME=`date "+%Y-%m-%d"`
export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history_${HISTORY_FILE_DATE_NAME}"

export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'

 

使腳本可執行
chmod +x /usr/local/system_script/bash_record.sh日誌

 

/etc/profile末尾追加內容:htm

vim /etc/profileblog

# 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)腳本一:推薦(按日期分割記錄文件)

# record cmd history
if [ ! -d /usr/local/records/${LOGNAME} ]

then

mkdir -p /usr/local/records/${LOGNAME}

chmod 300 /usr/local/records/${LOGNAME}

fi


export HISTORY_FILE_DATE_NAME=`date "+%Y-%m-%d"`
export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history_${HISTORY_FILE_DATE_NAME}"


#export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history"

export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'

 

添加history中每一個命令的執行時間:export HISTTIMEFORMAT='%F %T  '

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

 

(2)腳本二:(測試用,不推薦,日誌會不斷累積)

if [ ! -d /usr/local/records/${LOGNAME} ]

then

mkdir -p /usr/local/records/${LOGNAME}

chmod 300 /usr/local/records/${LOGNAME}

fi

export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history"

export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'

  

source /etc/profile

http://www.javashuo.com/article/p-aznamyym-go.html

相關文章
相關標籤/搜索