proftpd. Копия файлов на лету при закачке на сервер.

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
HighVoltage
проходил мимо
Сообщения: 2
Зарегистрирован: 2008-12-03 22:18:31

proftpd. Копия файлов на лету при закачке на сервер.

Непрочитанное сообщение HighVoltage » 2008-12-03 22:24:16

Доброго :)
Столкнулся с такой проблемой:
по фтп (proftpd) клиенты заливают служебные файлы, а точнее обновляют (перезаписывают) их, эти файлы сканируются другой программой и далее идут на обработку.
Возникла проблема логгирования этих файлов, т.к. клиенты могут закачать неверный файл а потом его перезаписать на верный, что надо отследить.
Подскажите пожалуйста, можно ли проделать следующее, к примеру:
В папку на ФТП сервере /folder клиент заливает файл, file.txt, затем, ещё 10 раз с интервалом в 5 минут он перезаписывает этот файл.

Необходимо, чтобы ФТП сервер, при каждой закачке клиентом файла file.txt в папку /folder делал сразу же копию этого файла к примеру в папку /logs с именем 081203_222312_file.txt, т.е. с меткой времени, и при каждой перезаписи файла /folder/file.txt делалась бы его копия с меткой времени в соседне папке.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: proftpd. Копия файлов на лету при закачке на сервер.

Непрочитанное сообщение Alex Keda » 2008-12-03 22:58:23

кроном тока если...
Убей их всех! Бог потом рассортирует...

HighVoltage
проходил мимо
Сообщения: 2
Зарегистрирован: 2008-12-03 22:18:31

Re: proftpd. Копия файлов на лету при закачке на сервер.

Непрочитанное сообщение HighVoltage » 2008-12-04 15:35:54

А триггер какой-нить можно поставить?
Либо в proftpd, чтобы при закачке файла (после полной закачки) вызывался скриптик, либо триггер который отслеживает дату последней модификации файла?
Может что-то типа

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

tail -f /var/log/proftpd/xfer.log
тока выход перенаправить в скрипт, который и будет отслеживать закачку файла в папку и делать копии?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: proftpd. Копия файлов на лету при закачке на сервер.

Непрочитанное сообщение Alex Keda » 2008-12-04 19:08:26

ну так напиши...
часть ты уже написал =)
Убей их всех! Бог потом рассортирует...

risk94
лейтенант
Сообщения: 831
Зарегистрирован: 2007-06-01 19:27:51

proftpd. Копия файлов на лету при закачке на сервер.

Непрочитанное сообщение risk94 » 2017-08-15 16:34:38

Столкнулся с похожей задачей, нужно было мониторить с какими файлами работает конкретный пользователь, чтобы отловить изменения.

Логи фтпшника у менЯ лежат в мускуле.
Написал вот такую писульку:

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

#!/bin/sh

mkdir="/bin/mkdir"
cp="/bin/cp"
mysql="/usr/local/bin/mysql"
cat="/bin/cat"
echo="/bin/echo"


 #путь где лежит скрипт
mydir="/usr/local/scripts/ftpspy"
 # сюда кладется все зазеркаленое
dir4spy="${mydir}/SPYed"
 # здесь лежит дататайм последней проверки
lastspydtfile="${mydir}/lastspydt"
 #мониторим запросы с этого
ftpClientIP1="3.2.1.2"
 # и с этого IP
ftpClientIP2="1.4.18.4"


lastspydt=`${cat} lastspydt`


mysql_user="ftpuser"
mysql_passwd="ftpuserpassword"

query_preffix="${mysql} --user=${mysql_user} --password=${mysql_passwd} "

DateNow="`date +%Y-%m-%d`"
TimeNow="`date +%H:%M:%S`"



ftploggeffilename=`${query_preffix} -s --database="proftpd" --execute="SELECT file_and_path FROM transfers WHERE timestamp>='${lastspydt}' AND (client_IP='${ftpClientIP1}'  client_IP='${ftpClientIP2}') " `

#echo ${ftploggeffilename}

for file4copy in ${ftploggeffilename};do

        ${mkdir} -p $dir4spy/`dirname ${file4copy}`
        cp ${file4copy} $dir4spy/`dirname ${file4copy}`/`basename ${file4copy}`__${DateNow}_${TimeNow}

done

${echo} "${DateNow} ${TimeNow}" > ${lastspydtfile}
Отправлено спустя 2 часа 39 минут 27 секунд:
Но вот с чемя столкнулся, так это то что в консоли скрипт отрабатывает ок, а если запускается по крону, то всегда из базы получает данные, не зависимо от даты из файла... Подскажите, где туплю уже 3-й час... ?

Отправлено спустя 1 час 16 минут 3 секунды:
Все оказалось как обычно в невнимательности....

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

lastspydt=`${cat} lastspydt`
заменить на

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

lastspydt=`${cat} ${lastspydtfile}`

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

proftpd. Копия файлов на лету при закачке на сервер.

Непрочитанное сообщение dekloper » 2017-08-17 13:25:36

HighVoltage писал(а): А триггер какой-нить можно поставить?
dtrace-ом отслеживать системный вызов открытия\закрытия файла... ну и ченить там делать с ним...
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!