您好,登錄后才能下訂單哦!
這篇文章主要介紹“Linux中如何將執行過的命令記錄到日志并發送到服務器”,在日常操作中,相信很多人在Linux中如何將執行過的命令記錄到日志并發送到服務器問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux中如何將執行過的命令記錄到日志并發送到服務器”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
第一種方法
代碼如下:
# vi /etc/profile
#設置history格式
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev/null| \
awk '{print $NF}'|sed -e 's/[()]//g'`] "
#記錄shell執行的每一條命令
export PROMPT_COMMAND='\
if [ -z "$OLD_PWD" ];then
export OLD_PWD=$PWD;
fi;
if [ ! -z "$LAST_CMD" ] && [ "$(history 1)" != "$LAST_CMD" ]; then
logger -t `whoami`_shell_cmd "[$OLD_PWD]$(history 1)";
fi ;
export LAST_CMD="$(history 1)";
export OLD_PWD=$PWD;'
第二種方法
第一步:全局設置(這是一次性設置,需要root用戶權限)
代碼如下:
# vi /etc/profile
#用戶登錄時執行此腳本
#設置history顯示格式
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev/null\
| awk '{print $NF}'|sed -e 's/[()]//g'`] "
#登錄時清空當前緩存 echo "" > .bash_history
第二步:不同用戶分別設置
代碼如下:
# source /etc/profile
# vi /home/user1/.bash_logout
#當用戶退出登錄時會執行此腳本
tmpfile="/tmp/`whoami`_history.tmp"
#把格式化的history記錄到文件里
history > $tmpfile
#讀取文件,一行一行把文件內容發送到給syslogd。
#不要試圖用"history | logger"或"logger -f $tmpfile"來替代下面的代碼,
#否則將只能記錄前200行。
k=1
while read line; do
((k++))
logger -t `whoami`_shell_cmd "$line"
done < $tmpfile
rm -f $tmpfile
(如果還有其它用戶需要監控,則重復第二步驟)
第三步:把日志發送給遠程主機(可選)
代碼如下:
# vi /etc/rsyslog.conf
#增加如下行,IP自己換,也可以用域名,@表示用UDP協議,@@表示用TCP協議
*.* @192.168.0.1
不足之處:
1. 不能實時記錄命令并發送log
2. 要記錄終端桌面下的命令需要重啟。
=========
到此,關于“Linux中如何將執行過的命令記錄到日志并發送到服務器”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。