1

Тема: Як запустити скрипт по логіну ftp крористувача?

Як запустити скрипт по логіну (чи логауту) ftp користувача?
OS - Debian
FTP server - vsftpd

завдання стоїть після логауту   - перейменувати файл, який залив робот. (бо інакше він не зможе залити новий файл - імена будуть однакові)

робот завжди приносить файл з однаковим іменем. час появи робота - непрогнозований.
після того, як робот залиє файл є щонайменеш 10 хв що він точно не зайде ще раз.

ставити крон щохвилини дивитися чи появився ftpuser  якось не дуже хочеться.

2

Re: Як запустити скрипт по логіну ftp крористувача?

А cron раз на хвилину не впорається?

3

Re: Як запустити скрипт по логіну ftp крористувача?

koala написав:

А cron раз на хвилину не впорається?

звісно crontab від ftpuser  впорається. навіть не раз на хвилину, а раз на 10 хв вистачить.
я просто думав, що може упустив якийсь варіант , котрий би активував скрипт саме на логін чи логаут.
перерив ман - нічого такого, але на всяк випадок перепитую - адже задачка не унікална, напевне хтось уже подібні питання вирішував.

4

Re: Як запустити скрипт по логіну ftp крористувача?

Не має бажань написати свого демона ФТП? У мене схоже завдання було, я так й зробив.
Достав Лазарус та вітяг руки із карманів )

5

Re: Як запустити скрипт по логіну ftp крористувача?

я не зрозумів ситуацію до кінця, а чи є можливість того робота дописати ?
зробіть як Кріс Ксперскі який написав модуль ядра який  слідкує за папками які відкриються, а ви зробіть так що б слідкував за новими файлами в певній папці, дальше чи можна маленьку програму написати хоч на РНР де буде слідкувати чи файл є новий чи з тим іменем що робот кинув

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі

6 Востаннє редагувалося reverse2500 (08.04.2017 21:15:18)

Re: Як запустити скрипт по логіну ftp крористувача?

я не зрозумів ситуацію до кінця, а чи є можливість того робота дописати ?
зробіть як Кріс Касперскі який написав модуль ядра який  слідкує за папками які відкриються, а ви зробіть так що б слідкував за новими файлами в певній папці, дальше чи можна маленьку програму написати хоч на РНР де буде слідкувати чи файл є новий чи з тим іменем що робот кинув

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі

7

Re: Як запустити скрипт по логіну ftp крористувача?

Vi написав:

Не має бажань написати свого демона ФТП? У мене схоже завдання було, я так й зробив.
Достав Лазарус та вітяг руки із карманів )

сервер не мій, обслуговувати будуть інші люди.
тому бажано використовувати тільки те, що вже на ньому встановлено - менша ймовірність що потім будуть смикати.

8

Re: Як запустити скрипт по логіну ftp крористувача?

reverse2500 написав:

я не зрозумів ситуацію до кінця, а чи є можливість того робота дописати ?

ні, робот зовсім чужий і приймає тільки логін, пароль і ім’я файлу. його модифікувати не можна .

зробіть як Кріс Касперскі який написав модуль ядра який  слідкує за папками які відкриються, а ви зробіть так що б слідкував за новими файлами в певній папці, дальше чи можна маленьку програму написати хоч на РНР де буде слідкувати чи файл є новий чи з тим іменем що робот кинув

ну десь так і буде.
рішення бачу так :
крон кожні 5 хв буде  запускати скрип на пітоні, а той уже займеться аналізом, перйменуваннями і, при потребі, архівуванням.

9

Re: Як запустити скрипт по логіну ftp крористувача?

крон кожні 5 хв буде  запускати скрип на пітоні

Я не виникне така подія що кронушка запустить скрипт тоді, коли файл ще не догрузиться?
Колізії не лякають?

10 Востаннє редагувалося koala (09.04.2017 09:47:53)

Re: Як запустити скрипт по логіну ftp крористувача?

Vi написав:

крон кожні 5 хв буде  запускати скрип на пітоні

Я не виникне така подія що кронушка запустить скрипт тоді, коли файл ще не догрузиться?
Колізії не лякають?

А у вас особлива релігія, що забороняє перевіряти, чи файл зайнятий?

11

Re: Як запустити скрипт по логіну ftp крористувача?

перевіряти, чи файл зайнятий?

Як?

12

Re: Як запустити скрипт по логіну ftp крористувача?

- або робот пiсля аплоаду головного файла хай пише ще допомiжний файл, а скрипт вiдслiдковує появу допомiжного > перейменувати головний файл, який залив робот > видалити допомiжний.
- або робот пише filename, пicля аплоаду перейменовує в filename.ext
- або якщо розмiр основного завжди однаковий, то по ньому cкрипт
- або https://www.ibm.com/developerworks/comm … lang=zh_cn

Білоруський журнал «Радиолюбитель»
Lead Radar systems engineer & Software developer of industrial automation
Мої розробки та відеоблог

13

Re: Як запустити скрипт по логіну ftp крористувача?

або робот

Неможна:

ні, робот зовсім чужий

14 Востаннє редагувалося ping (09.04.2017 23:29:46)

Re: Як запустити скрипт по логіну ftp крористувача?

Vi написав:

крон кожні 5 хв буде  запускати скрип на пітоні

Я не виникне така подія що кронушка запустить скрипт тоді, коли файл ще не догрузиться?
Колізії не лякають?

тоді  - якщо наступила подія - появилися файли, які треба переіменовувати  - перед початком роботи по переіменуванню файла - пауза 120 сек.

або - перевірити , чи нема його у виводі lsof  (але не хочу запускати консольні команди зі скрипта)

або - дивитися, чи вже від’єднався ftpuser

15

Re: Як запустити скрипт по логіну ftp крористувача?

пауза 120 сек.

Ні. Залів може працювати з перервами. Наприклад канал просідає. Я постийно раніше стикався с саме просіданням інтернету.

дивитися, чи вже від’єднався ftpuser

Це вже годнота  :)
Але... якщо ти будешь перевіряти також по таймеру під'єднання\від'єднання то також можешь ухопити колючку коли робот зал'є файл малого розміру та відпрацює за час самого таймера. Якщо ті повісищь якійсь опрацювач події тоді гайда, інакще можливе так:  *WALL*

16 Востаннє редагувалося koala (10.04.2017 12:19:30)

Re: Як запустити скрипт по логіну ftp крористувача?

Я, власне, хотів запропонувати саме перевірку, чи файл відкритий, до того ж найтупішу:

def file_is_free(filename):
    try:
        open(filename)
        return True
    except:
        return False

Але якщо робот може дозаливати - тоді, схоже, кращий варіант із додатковим файлом.

17 Востаннє редагувалося HetmanNet (10.04.2017 10:57:28)

Re: Як запустити скрипт по логіну ftp крористувача?

ping написав:

Як запустити скрипт по логіну (чи логауту) ftp користувача?
OS - Debian
FTP server - vsftpd

завдання стоїть після логауту   - перейменувати файл, який залив робот. (бо інакше він не зможе залити новий файл - імена будуть однакові)

робот завжди приносить файл з однаковим іменем. час появи робота - непрогнозований.
після того, як робот залиє файл є щонайменеш 10 хв що він точно не зайде ще раз.

ставити крон щохвилини дивитися чи появився ftpuser  якось не дуже хочеться.

Юзайте proftpd замість vsftpd, бо там є mod_exec, а в ньому є параметри:
1. ExecOnExit запуск по відключенню..
2. ExecOnConnect при під'єднанні..
3. ExecOnCommand при виконанні певної ftp команди
4. І решта.
І тоді не треба ніфіга додатково писати окрім скрипта що бажаєте запускати..

Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..
Подякували: koala, raxp, NagarD, ping4

18 Востаннє редагувалося HetmanNet (10.04.2017 19:02:14)

Re: Як запустити скрипт по логіну ftp крористувача?

reverse2500 написав:

я не зрозумів ситуацію до кінця, а чи є можливість того робота дописати ?
зробіть як Кріс Ксперскі який написав модуль ядра який  слідкує за папками які відкриються, а ви зробіть так що б слідкував за новими файлами в певній папці, дальше чи можна маленьку програму написати хоч на РНР де буде слідкувати чи файл є новий чи з тим іменем що робот кинув

Взагалі є готовий механізм в ядрі лінукс, треба лиш поставити утиліту для роботи з ним. INOTIFY це типу cron але запуск не по розкладу, а за взаємодією з файловою системою. Тож навіщо щось писати додатково? Може просто навчити користуватися інструментами, що є в linux?

Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..
Подякували: ping1

19

Re: Як запустити скрипт по логіну ftp крористувача?

ping написав:
Vi написав:

Не має бажань написати свого демона ФТП? У мене схоже завдання було, я так й зробив.
Достав Лазарус та вітяг руки із карманів )

сервер не мій, обслуговувати будуть інші люди.
тому бажано використовувати тільки те, що вже на ньому встановлено - менша ймовірність що потім будуть смикати.

Ну тоді ніяк.. так чи інакше треба буде щось до встановити чи перевстановити хоча би з пакунків.

Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..