bash.im ithappens.me zadolba.li
7355

Сон по расписанию

26 сентября 2011, 10:00

В студёную летнюю пору, в первый же день моего приёма на работу в гостиницу, нагрянул к нам аж целый президент со своим штабом и ФСО. Подняли кучу шума, пыли и переполоха. Точнее, самого президента нам не досталось — и слава стихиям. ФСО тут же стали тянуть себе интернет (нашего им не хватало) и мучать межгород — а как раз за пару дней до того на коробочке DSA-3110 PPPoE, по которому нам падал биллинг, помер. Подняли PPPoE через винду — невелика проблема, но дальше уткнулись в тупик. Если раньше порт пробрасывался напрямую на FTP-сервер, то теперь всё падало на совершенно левый комп. Подняли на нем FTP — файл с биллингом стал ловиться. Скормили его программе через SMB — всё окей. Но не сидеть же и не кидать каждые несколько секунд файлики?

Первым (и, конечно, неправильным) решением было смонтировать нужную папку по Самбе и назначить её домашней для FTP. Да не тут-то было: FileZilla напрочь отказалась работать с SMB-шарой хоть напрямую, хоть как с диском. Когда тот же фейл постиг ещё нескольких клиентов, было решено написать скрипт для перекидывания файла из папки FTP в примонтированную сетевую. И ещё один тупик — как организовать фиксированную задержку в батнике? Про способ с ping localhost -n я узнал месяцем позже. Да и не люблю я скрипты, зато с детства владею Паскалем. Минут десять на развёртывание Lazarus, Блокнот, в нём что-то вроде:

program ppc
while true do begin if FileExists() then MoveFile(); sleep(100); end;
end.

Конечно, потом этот код оброс try … except, репортом таймштампов и размера перемещённых по сети файлов — на всякий случай. А сейчас у него аптайм второй раз перевалил за полсотни дней, и менять код на скрипт, согласно первому правилу админа («работает — не трожь!»), я пока не собираюсь. Пусть в местном зоопарке будет на одну монструозию больше.