linux遠程記錄終端操作記錄

網上流傳個這樣一篇關於記錄linux遠程操作記錄的文章:很可惜的是沒有該出詳細的解釋,

 

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` (who -u am i 會顯示系統中登陸進來的用戶及登陸從哪個IP登陸進來的,這裏後面過濾了就取值一個登陸進來的IP)
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/ruige ]
then
mkdir /tmp/ruige
chmod 777 /tmp/ruige
fi
if [ ! -d /tmp/ruige/${LOGNAME} ]
then
mkdir /tmp/ruige/${LOGNAME}
chmod 300 /tmp/ruige/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date '+%Y:%m:%d %r'`
export HISTFILE="/tmp/ruige/${LOGNAME}/${USER_IP} ruige.$DT"
chmod 600 /tmp/ruige/${LOGNAME}/*ruige* 2>/dev/null

這個shell腳本很簡單,但如果像我一樣的對history命令不瞭解的菜鳥,真是表示看不懂啊!

首先我不理解 HISTFILE是什麼意思,更不知道設置HISTSIZE變量有什麼作用?網上了查了關於history的用法也沒有提及這2個變量啊,於是就想當然的以爲這2個變量是自定義的,還有一個我不理解,環境變量是用戶連接到shell的時候就觸發的,那又怎麼能記錄用戶的操作呢?

菜鳥總是要成長的,後來,我無意間瞭解了真相,供剛入門的linux菜鳥學習!

關於history的有2個系統變量 配置history:HISTFILE及HISTSIZE,

系統保存的歷史事件數被保存在一個特定的系統變量中,這個變量就是HISTSIZE。這個變量的缺省值通常被設置爲500。這個值可以被修改。例如:
$ HISTSIZE=10
將HISTSIZE的值重新設置爲10。
歷史事件被保存在一個文件中,文件名由變量HISTFILE指定。通常這個文件的缺省名是.bash_history。通過給變量HISTFILE賦值,可以指定新的文件名。

注意!普通用戶的權限,如果沒有權限在你指定的位置創建並且寫入的話,則出錯

[例】
$ echo $HISTFILE
/home/lisa/.bash_history
$ HISTFILE=”/home/lisa/newhist”
$ echo $HISTFILE
/home/lisa/newhist
以上操作先顯示變量HISTFILE的值,然後賦予它新的值“/home/lisa/newhist”,以後所有的歷史事件將被保存在newhist文件中。
################################################################

看到這兒你應該明白過來了吧!整個shell腳本的目的就是指定history的2個系統變量的值!這樣當用戶連接上shell之後,history就會一直記錄用戶的操作,保存到你指定的新文件裏面!

 

參考來自:http://ruilinux.blog.51cto.com/4265949/845405

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1941583

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章