sftp 记录日志及转储功能说明() 下载本文

Sftp 记录日志及转储功能说明

1、 Sftp记录日志: Root用户登录:

修改:/etc/ssh/sshd_config

# override default of no subsystems

Subsystem ? ?sftp??? /usr/lib64/ssh/sftp-server?-l INFO -f local5 <红色字体为添加>

修改:/etc/rsyslog.conf

添加 :注意auth与上边要求一致。

auth, local5.*????????????????????????????/var/log/sftp.log

重启服务:

service rsyslog restart? service sshd restart? 2、 日志转储配置:

新建文件:/etc/logrotate.d/sftp :注意不要带备注

##Deal Sftp Log /var/log/sftp.log {

nocreate missingok

notifempty rotate 9

size 10k create 640 root root sharedscripts postrotate

/bin/kill -HUP $(/bin/cat /var/run/syslogd.pid 2>/dev/null) &>/dev/null

endscript }

注意:确保日志文件sftp.log的inode不能变化,发生变化的话则不会在写sftp.log,若sftp.log删除后则会写在系统日志messages里面。 其中 /var/log/sftp.log ##日志文件

nocreate ##转储时不创建文件---重要,确保文件的inode不能变化

rotate 9 ##转储9个文件循环 missingok ##文件缺失判断 notifempty ##文件空判断

size 10k ##文件大小10K转储 create 640 root root ##文件权限 sharedscripts ###启停日志进程。

3、 日志转储程序:目前在/home/sftplog/getftplog.sh

#!/bin/sh

date '+%Y%m%d%H%M%S'

echo \

/usr/sbin/logrotate -f /etc/logrotate.d/sftp ##执行日志文件转储 echo \curtime=`date '+%Y%m%d%H%M%S'`

ls /var/log/sftp.log.?|while read line do

filename=$(basename $line) if [ -f \ then

mv ${line} /home/sftplog/ulogs/${filename}.${curtime} ##文件

chmod 755 /home/sftplog/ulogs/${filename}.${curtime} ##修改权限

fi done

echo \ 4、 定时执行

*/10 * * * * sh /home/sftplog/getftplog.sh >/home/sftplog/getftplog.log 2>&1

##10分钟执行一次。