濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Linux中將執(zhí)行過(guò)的命令記錄到日志并發(fā)送到服務(wù)器的方法

Linux中將執(zhí)行過(guò)的命令記錄到日志并發(fā)送到服務(wù)器的方法

熱門(mén)標(biāo)簽:申請(qǐng)400電話流程好嗎 高德地圖標(biāo)注在電腦上 軟件電話機(jī)器人 柯城手機(jī)地圖如何做地圖標(biāo)注 小語(yǔ)股票電銷機(jī)器人 金華呼叫中心外呼系統(tǒng)廠家 萊蕪移動(dòng)外呼系統(tǒng) 襄陽(yáng)地圖標(biāo)注店 杭州電銷機(jī)器人有效果嗎

工作中,需要把用戶執(zhí)行的每一個(gè)命令都記錄下來(lái),并發(fā)送到日志服務(wù)器的需求,為此我做了一個(gè)簡(jiǎn)單的解決方案。這個(gè)方案會(huì)在每個(gè)用戶退出登錄 時(shí)把用戶所執(zhí)行的每一個(gè)命令都發(fā)送給日志守護(hù)進(jìn)程rsyslogd,你也可通過(guò)配置“/etc/rsyslog.conf”進(jìn)一步將日志發(fā)送給日志服務(wù)器

第一種方法

復(fù)制代碼
代碼如下:

# vi /etc/profile
#設(shè)置history格式
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev/null| \
awk '{print $NF}'|sed -e 's/[()]//g'`] "
#記錄shell執(zhí)行的每一條命令
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;'

第二種方法
第一步:全局設(shè)置(這是一次性設(shè)置,需要root用戶權(quán)限)

復(fù)制代碼
代碼如下:

# vi /etc/profile
#用戶登錄時(shí)執(zhí)行此腳本
#設(shè)置history顯示格式
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev/null\
| awk '{print $NF}'|sed -e 's/[()]//g'`] "
#登錄時(shí)清空當(dāng)前緩存 echo "" > .bash_history

第二步:不同用戶分別設(shè)置

復(fù)制代碼
代碼如下:

# source /etc/profile
# vi /home/user1/.bash_logout
#當(dāng)用戶退出登錄時(shí)會(huì)執(zhí)行此腳本
tmpfile="/tmp/`whoami`_history.tmp"
#把格式化的history記錄到文件里
history > $tmpfile
#讀取文件,一行一行把文件內(nèi)容發(fā)送到給syslogd。
#不要試圖用"history | logger"或"logger -f $tmpfile"來(lái)替代下面的代碼,
#否則將只能記錄前200行。
k=1
while read line; do
((k++))
logger -t `whoami`_shell_cmd "$line"
done $tmpfile
rm -f $tmpfile

(如果還有其它用戶需要監(jiān)控,則重復(fù)第二步驟)
第三步:把日志發(fā)送給遠(yuǎn)程主機(jī)(可選)

復(fù)制代碼
代碼如下:

# vi /etc/rsyslog.conf
#增加如下行,IP自己換,也可以用域名,@表示用UDP協(xié)議,@@表示用TCP協(xié)議
*.* @192.168.0.1

 
不足之處:
1. 不能實(shí)時(shí)記錄命令并發(fā)送log
2. 要記錄終端桌面下的命令需要重啟。
=========

標(biāo)簽:哈密 孝感 昌都 臺(tái)州 海東 玉樹(shù) 九江 優(yōu)質(zhì)穩(wěn)定

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux中將執(zhí)行過(guò)的命令記錄到日志并發(fā)送到服務(wù)器的方法》,本文關(guān)鍵詞  Linux,中將,執(zhí),行過(guò),的,命令,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux中將執(zhí)行過(guò)的命令記錄到日志并發(fā)送到服務(wù)器的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Linux中將執(zhí)行過(guò)的命令記錄到日志并發(fā)送到服務(wù)器的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    文成县| 西盟| 轮台县| 平湖市| 临邑县| 揭阳市| 宁城县| 枝江市| 朝阳区| 南雄市| 钦州市| 乌恰县| 东明县| 清徐县| 鄄城县| 东乌珠穆沁旗| 陵水| 鄂伦春自治旗| 唐山市| 江都市| 宁安市| 金溪县| 句容市| 上高县| 东兰县| 潞西市| 广平县| 新余市| 裕民县| 镇坪县| 白朗县| 庆安县| 梧州市| 建昌县| 保德县| 遵义县| 张北县| 新安县| 罗江县| 旺苍县| 永登县|