Linux Command Logs 設定筆記 (使用 history )
# 需安裝 rsyslog 套件
1.vi /etc/rsyslog.conf
authpriv.*;local6.* /var/log/cmd.log
# 重啟 rsyslog
2.service rsyslog restart
3.vi /etc/bashrc
# Note: 底下兩種各有優缺點,都是history方式,仍有小缺點
# 讓目前環境下生效
4.source /etc/bashrc
# 定時清理與壓縮logs , 需安裝 logrotate 套件 (欲保留90天)
5.vi /etc/logrotate.d/cmd
# 測試執行 logrotate
6.logrotate -vf /etc/logrotate.conf
*Note: 網路大部份都是此方式 , 使用history 為後寫有其缺點 , 後來開發改良使用 real-time command logs
# 需安裝 rsyslog 套件
1.vi /etc/rsyslog.conf
authpriv.*;local6.* /var/log/cmd.log
# 重啟 rsyslog
2.service rsyslog restart
3.vi /etc/bashrc
# Note: 底下兩種各有優缺點,都是history方式,仍有小缺點
## 按enter會重複log
PROMPT_COMMAND='{ command=$(history 1 | { read x y; echo $y; }); logger -p local6.notice -t bash -i "user=$USER,pwd=$PWD,command:$command"; }'
## 按enter不會重複log,但下相同的指令不會log
PROMPT_COMMAND='history -a >(tee -a ~/.bash_history | logger -p local6.notice -t "user=$USER,pwd=$PWD,command")'
# 讓目前環境下生效
4.source /etc/bashrc
# 定時清理與壓縮logs , 需安裝 logrotate 套件 (欲保留90天)
5.vi /etc/logrotate.d/cmd
/var/log/cmd.log
{
missingok
notifempty
rotate 90
daily
compress
create
}
# 測試執行 logrotate
6.logrotate -vf /etc/logrotate.conf
*Note: 網路大部份都是此方式 , 使用history 為後寫有其缺點 , 後來開發改良使用 real-time command logs