用户记录操作

Wednesday, Mar 22, 2017 | 1 minute read | Updated at Wednesday, Mar 22, 2017

@
用户记录操作

使用crontab记录用户操作日志

  1. 保存用户的登录日志

    #!/bin/sh
    
    #PS1="`whoami`@`hostname`:"'[$PWD]'
    history
    USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
    if [ "$USER_IP" = "" ];
    then
            USER_IP=`hostname`
    fi
    if [ ! -d /tmp/logindb ];
    then
            mkdir /tmp/logindb
            chmod 777 /tmp/logindb
    fi
    if [ ! -d /tmp/logindb/${LOGNAME} ];
    then
            mkdir /tmp/logindb/${LOGNAME}
            chmod 300 /tmp/logindb/${LOGNAME}
    fi
    
    export HISTSIZE=4096
    DT=`date "+%Y-%m-%d_%H:%M:%S"`
    export HISTFILE="/tmp/logindb/${LOGNAME}/${USER_IP} logindb.$DT"
    chmod 600 /tmp/logindb/${LOGNAME}/*logindb* 2>/dev/null
    
  2. 添加crontab任务

    # 删除6天前的登录日志
    0 0 * * 0 find /tmp/logindb -mtime +7 -type f -exec rm -rf {} \;
    

  3. 开启crontab日志

    sudo vim /etc/rsyslog.d/50-default.conf
    cron.* /var/log/cron.log # 将cron前面的注释符去掉
    
    #restart rsyslog
    sudo /etc/init.d/rsyslog restart
    

© 2016 - 2025 Caisong's Blog

🌱 Powered by Hugo with theme Dream.

About Me

大龄程序员,喜欢折腾各种环境部署、软件应用。

博客记录日常。