實時儲存使用者歷史命令 shell指令碼

2021-10-09 01:40:58 字數 2444 閱讀 2297

實時儲存linux系統下使用者的歷史命令

指令碼如下

[root@k8s-master ~]

# cat history.sh

#!/bin/bash

#sehn

user_ip=`who -u am i 2>/dev/null| awk ''

|sed -e 's/[()]//g'`

histdir=/

var/log/

.history #歷史命令儲存目錄if[

-z $user_ip

];then

user_ip=`hostname -i`

fiif[!

-d $histdir

];then

mkdir -p $histdir

chmod 777 $histdir

fiif[!

-d $histdir/$]

;then

mkdir -p $histdir

/$chmod 300 $histdir

/$fi

export histsize=4096

dt=`date +

%y%m%d_%h%m%s`

export histfile="$histdir/$/$dt.$.$"

export histtimeformat="[%y.%m.%d %h:%m:%s]"

chmod 600 $histdir/$/

*.history* 2>/dev/null

新增許可權,我這裡是實驗環境,直接給了777

[root@master ~]

# chmod 777 history.sh

將指令碼新增至/etc/profile.d/

[root@master ~]

# cd /etc/profile.d/

[root@master profile.d]

# ls

256term.csh bash_completion.sh colorgrep.sh colorls.sh lang.csh less.csh sh.local vim.sh which2.sh

256term.sh colorgrep.csh colorls.csh csh.local lang.sh less.sh vim.csh which2.csh

[root@k8s-master profile.d]

# cp /root/history.sh .

使環境變數立即生效

[root@master ~]

# source /etc/profile

測試

建立乙個普通使用者,登入進行一系列操作

[root@master .history]

# useradd test

[root@master .history]

# su test

[test@master .history]$ cd /tmp/

[test@master tmp]$ ls

vmware-root_7930-1003075826 vmware-root_8425-1713837358 vmware-root_8615-1957110343 vmware-root_8654-693800911

[test@master tmp]$ mkdir abc

[test@master tmp]$ echo

"hello world" > abc/test

[test@master tmp]$ exit

exit

檢視歷史命令儲存目錄,已經生成檔案

[root@master test]

# pwd

/var

/log/

.history/test

[root@master test]

# ls

20200810_215123.test.192.168.200.1

可以檢視到該使用者操作的歷史命令的內容

[root@master test]

# cat 20200810_215123.test.192.168.200.1

#1597067492

cd /tmp/

#1597067497

ls#1597067523

mkdir abc

#1597067569

echo

"hello world" > abc/test

#1597067585

exit

[root@master test]

#

也可以結合crontab定期將日誌儲存至遠端伺服器

Shell歷史命令

1.歷史命令 history 輸出的是我上次.bash history儲存下來的和我這次輸入的命令。歷史命令實際儲存在使用者家目錄下的檔案中 bash history 開啟該檔案 cat bash history,這裡面儲存的是我上次登陸正確登出後儲存的命令。這次登陸正確退出的時候才會把命令同步到....

shell 歷史命令記錄功能

標籤 空格分隔 linux shell 在 linux 下面可以使用history命令檢視使用者的所有歷史操作,同時 shell 命令操作記錄預設儲存在使用者目錄的.bash history檔案中。通過這個檔案可以查詢 shell 命令的執行歷史,有助於運維人員進行系統審計和問題排查,同時在伺服器遭...

shell 歷史命令相關記錄

shell 歷史命令使用上有很多技巧,除了經常經常使用的 fc l history shell ls bin sh shell file 是對歷史命令引數的直接引用 再來看乙個長點的。這顯然是乙個錯誤的輸入,大家都知道bz2是使用bzip解壓縮的,對應的tar引數,應當是使用 jxvf 那我們可以立...