Страница 1 из 1

Grep и mail -s шел скрипт печаль

Добавлено: 2011-08-05 2:57:25
unsobill
- по совместительству поставил на работе железяку с фряхой 8-й и sftp chroot. Все отлично было, пока лентяям стало лень смотреть кто что кидает в sftp извне и попросили настругать скрипт для нотификации по имейлу если что-кто зальет.

Нужная информация парсящая из логов :
Date/time, Username, Folder, incoming IP Address (optional), filename, file size (optional).

вот эту печаль я настругал пока, сам я CCNA цискарь в подготовке на CCIE, shell скрипты темный лес так что не обесудьте. Парсил по строке subsystem request for sftp но нифига не вышло.
#!/usr/local/bin/bash
tail -f /var/log/auth.log | grep "subsystem request for sftp" | mail -s "я@здесь.com" ты@там.com
этот скрипт виснет и не шлет ничего пока не получает CTRL+Z oт меня.

Re: Grep и mail -s шел скрипт печаль

Добавлено: 2011-08-05 9:12:11
FiL
да

Re: Grep и mail -s шел скрипт печаль

Добавлено: 2011-08-06 1:52:02
unsobill
перелопатил на вот такое чудо уже шлет логины, но все равно это не то, так как скрипт не проверяет sftp папки на наличие новых файлов, не форматирует текст для емайла и показывает все логины а не только новые.
#!/bin/sh
touch /var/log/messages.old
grep -v -f /var/log/messages.old /var/log/auth.log | grep "Accepted keyboard-interactive/pam for" | mail -s "report" 5у@5у.com
cp /var/log/auth.log /var/log/messages.old

Re: Grep и mail -s шел скрипт печаль

Добавлено: 2011-08-06 1:53:39
unsobill
FiL писал(а):да
иди воды попей, не флуди

Re: Grep и mail -s шел скрипт печаль

Добавлено: 2011-08-06 21:20:17
kpp
Для каждого лога хранить точку последнего изменения, и при следующей выборке, брать из логов начиная с этой точки и до конца.
Для мониторинга новый файлов в каталоге - хранить момент последнего контроля, при следущем мониторинге проверять наличие файлов, момент создания кот. позже момента последнего контроля.

Код: Выделить всё

touch file_check
find . -newer file_check -print

Re: Grep и mail -s шел скрипт печаль

Добавлено: 2011-08-06 21:26:10
kpp
Для каждого лога хранить точку последнего изменения, и при следующей выборке, брать из логов начиная с этой точки и до конца.

Код: Выделить всё

point="Aug  2 22:46:07 "
sed -n '/'"${point}"'/,$p' messages

Re: Grep и mail -s шел скрипт печаль

Добавлено: 2011-08-07 8:55:08
unsobill
спасибо, пока не понял как это все засунуть в один скрипт, моск молчит. Завтра утром буду думать, спасибо.