Linux Command Logs 設定筆記 (使用 history )

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方式,仍有小缺點

## 按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

留言

這個網誌中的熱門文章

舊公寓對講機變身為手機遙控門鎖研究筆記

舊大門換裝小米電子鎖筆記

解決愛奇藝APP在SONY電視上花屏問題筆記