Уровень входа действия в SFTP

Это происходит потому что > перенаправление происходит перед head программа запущена. > перенаправление усекает файл, если это существует, поэтому когда head читает файл, это уже пусто.

7
27.02.2014, 07:48
1 ответ

Вот пример вывода файла журнала:

Feb 26 23:04:55 pegasus internal-sftp[32524]: session opened for local user joeuser from [123.123.123.123]
Feb 26 23:04:57 pegasus internal-sftp[32524]: opendir "/home/joeuser"
Feb 26 23:04:58 pegasus internal-sftp[32524]: closedir "/home/joeuser"
Feb 26 23:05:01 pegasus internal-sftp[32524]: opendir "/home/joeuser/"
Feb 26 23:05:01 pegasus internal-sftp[32524]: closedir "/home/joeuser/"
Feb 26 23:05:02 pegasus internal-sftp[32524]: opendir "/home/joeuser/upload"
Feb 26 23:05:02 pegasus internal-sftp[32524]: closedir "/home/joeuser/upload"
Feb 26 23:05:07 pegasus internal-sftp[32524]: opendir "/home/joeuser/upload"
Feb 26 23:05:07 pegasus internal-sftp[32524]: closedir "/home/joeuser/upload"
Feb 26 23:05:09 pegasus internal-sftp[32524]: session closed for local user joeuser from [123.123.123.123]

Какой пользователь какой?

Если вы обратили внимание на вывод выше, там будет номер в квадратных скобках internal-sftp [32524] . Номер - 32524. Он представляет собой идентификатор сеанса для пользователя joeuser, поэтому вы можете использовать эту строку вместе с сообщениями, относящимися к логину какого пользователя.

Ротация журналов

Вы можете изменить расписание ротации журналов для различных журналов в /etc/logrotate.d / * . Каждый файл журнала обычно имеет соответствующий файл в этом каталоге. Таким образом, вы можете изменить там файл syslog , например, или создать свой собственный файл журнала sftp.log .

Также logrotate имеет файл конфигурации, /etc/logrotate.conf , который содержит следующие строки:

# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

Это то, что файлы в / etc / logrotate .d , если у них нет собственных настроек. Таким образом, большинство файлов меняются еженедельно, а 4 из них хранятся. Если вы хотите сохранить 6 месяцев, это будет 4 * 6 = 24 для варианта ротации , чтобы сохранить примерно 6 месяцев.

Пример

Если вы входите в /var/log/sftp.log через syslog , вам необходимо внести изменения в этот файл, /etc/logrotate.d/syslog.После внесения необходимых изменений ваш файл будет выглядеть следующим образом:

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
/var/log/sftp.log
{
    rotate 24
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

Поскольку вы используете syslog , вам также придется чередовать все эти файлы журналов, сохраните их на 24 недели. Если это неприемлемо, то ваш единственный другой способ действий - создать отдельный раздел в этом файле, syslog , например так:

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

/var/log/sftp.log
{
    rotate 24
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

Это имеет некоторые побочные эффекты, один из которых заключается в том, что вы будете перезапускать демон syslog 2 раза в неделю вместо одного раза. Но синтаксис logroate не позволяет точно управлять расписанием ротации для одних файлов журналов, не меняя ротацию других, когда файлы журналов создаются одной и той же службой, то есть syslog .

Ссылки

7
27.01.2020, 20:18

Теги

Похожие вопросы