linux系統日誌輸出,記錄用戶登入信息以及登入ip,登入操做記錄等

相關內容:https://segmentfault.com/q/1010000009599965segmentfault

 

#!/bin/bash
#script須要使用source commandhist.sh運行
#設置command history記錄
cat >> /etc/profile <<"EOF"
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M%S: "
export HISTTIMEFORMAT
export PROMPT_COMMAND='{ command=$(history 1 | { read x y; echo $y; });logger -p local1.notice -t bash -i "user=$USER,ppid=$PPID,from=$SSH_CLIENT,pwd=$PWD,command:$command"; }'
EOFbash

#設置/etc/profile文件生效
source /etc/profilerest

#增長一個本地的日誌策略local.notice,並設置該消息不經過messages輸出
cat >> /etc/rsyslog.conf <<EOF
local1.notice /var/log/command.log日誌

EOF
sed -i 's/\*\.info;mail\.none;authpriv\.none;cron\.none/\*\.info;mail\.none;authpriv\.none;cron\.none;local1\.none/g' /etc/rsyslog.conform

#修改rsyslog時間格式
sed -i 's/$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat/#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat/g' /etc/rsyslog.conf
cat >>/etc/rsyslog.conf<<"EOF"
$template myformat,"%$NOW% %TIMESTAMP:8:15% %hostname% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate myformatip

EOFit

#配置command.log
cat >> /etc/logrotate.d/local1 <<EOF
/var/log/command.log{
       daily
       olddir /var/log/command_logs/
       create 0600 root root
}
EOF
mkdir -p /var/log/command_logsio

#重啓日誌服務    
service rsyslog restartform

相關文章
相關標籤/搜索