O que eu quero / preciso / desejo é registrar quando um usuário faz login no meu servidor FTP.
Problema: não consigo fazer o trabalho de amostra do jeito que eu deveria ser capaz.
Esses dados são registrados em um arquivo - mas é claro que esses logs não são mantidos por muito tempo. Não consigo manter os logs para sempre, mas posso extrair dados a partir de então, analisá-los, armazenar os resultados em outro lugar.
Se houver uma maneira melhor de fazer isso do que o seguinte, sou todo ouvidos.
Versão da amostra 3.2.3
Perl 5.12
FTP: VSFTP
SO (teste): OS X 10.6.8
SO (Produção): Solaris
Do homem eu vejo que posso passar o conteúdo para um comando .. então eu deveria ser capaz de ecoar os valores para o arquivo, fazer uma coisa sed / cut / uniq sobre eles para as estatísticas.
$ man swatch
(snip)
exec command
Execute command. The command may contain variables which
are substituted with fields from the matched line. A $N
will be replaced by the Nth field in
the line. A $0 or $* will be replaced by the entire line.
Arquivo de amostras .swatchrc
watchfor /OK LOGIN/
echo=red
pipe "echo "0: $0 1:$1 2:$2 3:$3 4:$4 5:$5" >> /Users/bdunbar/dev/ftplog/output.txt"
Inicie com
$ swatch -c /Users/bdunbar/.swatchrc --script-dir /Users/bdunbar/dev/ftplog -t /Users/bdunbar/dev/ftplog/vsftpd.log &
Teste
echo "Mon July 9 03:11:07 2012 [pid 14938] [aetech] OK LOGIN: Client "206.209.255.227"" >> vsftpd.log
Resultados - está ecoando em TTY. Isso não é necessário ou desejado no servidor, mas me diz que as coisas estão funcionando.
ftplog
*** swatch version 3.2.3 (pid:25780) started at Mon Jul 9 15:23:33 CDT 2012
Mon July 9 03:11:07 2012 [pid 14938] [aetech] OK LOGIN: Client 206.209.255.227
Resultados - mal! Parece que não estou enviando as variáveis para o texto.
$ tail -f output.txt
0: /Users/bdunbar/dev/ftplog/.swatch_script.25780 1: 2: 3: 4: 5: