Автор Тема: ftp и проверка на големината на файла преди и след сваляне  (Прочетена 1398 пъти)

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Здравейте,
Имам следното питане: има ли начин ( гледам в google има доста писано, но нищо конкретно ) да се провери дали целия файл е бил свален от фтп-то.Примерно нещо от рода на:

след като user1 се логне в машината ( Linux ) пусна да сваля файл, фтп-то прави в лога запис, че е свалено едикакво си, като същевременно проверява дали големината на изпратения файл съвпада с тази записана в лога?
Активен

Some Things Just Are The Way They Are

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Здравейте,
Имам следното питане: има ли начин ( гледам в google има доста писано, но нищо конкретно ) да се провери дали целия файл е бил свален от фтп-то.Примерно нещо от рода на:

след като user1 се логне в машината ( Linux ) пусна да сваля файл, фтп-то прави в лога запис, че е свалено едикакво си, като същевременно проверява дали големината на изпратения файл съвпада с тази записана в лога?
md5 сигнатура с файла?
Активен

0x2B|~0x2B

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Здравейте,
Имам следното питане: има ли начин ( гледам в google има доста писано, но нищо конкретно ) да се провери дали целия файл е бил свален от фтп-то.Примерно нещо от рода на:

след като user1 се логне в машината ( Linux ) пусна да сваля файл, фтп-то прави в лога запис, че е свалено едикакво си, като същевременно проверява дали големината на изпратения файл съвпада с тази записана в лога?
md5 сигнатура с файла?

Ами не знам дали ще стане, защото случая е следния: имам Linux машина, там се генерират/прехвърлят през определен интервал файлове.Друга машина с Windows има пуснат софт в който са описани user и пас за логване на Linux ftp-to, приложението се логва и дърпа всички нови файлове.
Как ще стане генерирането на md5?След като Linux-a има файл за трансфер към Windows?Защото Windows поне през приложението няма как да го накарам да провери md5-та.
Активен

Some Things Just Are The Way They Are

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Здравейте,
Имам следното питане: има ли начин ( гледам в google има доста писано, но нищо конкретно ) да се провери дали целия файл е бил свален от фтп-то.Примерно нещо от рода на:

след като user1 се логне в машината ( Linux ) пусна да сваля файл, фтп-то прави в лога запис, че е свалено едикакво си, като същевременно проверява дали големината на изпратения файл съвпада с тази записана в лога?
md5 сигнатура с файла?

Ами не знам дали ще стане, защото случая е следния: имам Linux машина, там се генерират/прехвърлят през определен интервал файлове.Друга машина с Windows има пуснат софт в който са описани user и пас за логване на Linux ftp-to, приложението се логва и дърпа всички нови файлове.
Как ще стане генерирането на md5?След като Linux-a има файл за трансфер към Windows?Защото Windows поне през приложението няма как да го накарам да провери md5-та.
Просто, след като се генерират файловете се генерира с md5sum файл с контролните им суми
След това под WIndows с тази програмка: http://www.pc-tools.net/win32/md5sums/ ги проверяваш след като си ги изтеглил
« Последна редакция: May 21, 2010, 21:10 от romeo_ninov »
Активен

0x2B|~0x2B

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Здравейте,
Имам следното питане: има ли начин ( гледам в google има доста писано, но нищо конкретно ) да се провери дали целия файл е бил свален от фтп-то.Примерно нещо от рода на:

след като user1 се логне в машината ( Linux ) пусна да сваля файл, фтп-то прави в лога запис, че е свалено едикакво си, като същевременно проверява дали големината на изпратения файл съвпада с тази записана в лога?
md5 сигнатура с файла?

Ами не знам дали ще стане, защото случая е следния: имам Linux машина, там се генерират/прехвърлят през определен интервал файлове.Друга машина с Windows има пуснат софт в който са описани user и пас за логване на Linux ftp-to, приложението се логва и дърпа всички нови файлове.
Как ще стане генерирането на md5?След като Linux-a има файл за трансфер към Windows?Защото Windows поне през приложението няма как да го накарам да провери md5-та.
Просто, след като се генерират файловете се генерира с md5sum файл с контролните им суми
След това под WIndows с тази програмка: http://www.pc-tools.net/win32/md5sums/ ги проверяваш след като си ги изтеглил

всичко трябва да става автоматично
Активен

Some Things Just Are The Way They Are

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
всичко трябва да става автоматично
и какъв е проблема, нали някакъв скрипт създава тези файлове (в линукс), добави му накрая да създаде и чексумата
И при WIndows пак bat файл ги тегли, добави в началото да ги проверява
Иначе в лога може да пише едно, но при клиента да не е записано всичко или да е записано с грешки
Активен

0x2B|~0x2B

jet

  • Напреднали
  • *****
  • Публикации: 3469
  • Distribution: debian
  • Window Manager: kde
    • Профил
другия вариант е трансферираните файлове да са архивирани - например със ЗИП
прост .бат файл може да проверява интегритета на сваления архив (всички архиватори го имат- проверяваш ЕРРОРЛЕВЕЛ).
Ако интегритета е ок - значи трансфера е железен, ако не - ретрансфер.
Активен

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
другия вариант е трансферираните файлове да са архивирани - например със ЗИП
прост .бат файл може да проверява интегритета на сваления архив (всички архиватори го имат- проверяваш ЕРРОРЛЕВЕЛ).
Ако интегритета е ок - значи трансфера е железен, ако не - ретрансфер.
Да, много добра идея, не ми хрумна :)
Активен

0x2B|~0x2B

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Вече си получил добри идеи. Само да вметна, че ftp сървърите знаят дали изтегленият файл е изтеглен нацяло или не, и записват това в лога, ако е позволено да водят логове за това (xferlog). Когато даден файл бъде изтеглен нацяло без грешки, в xferlog-а се записва ред за този файл, който ред завършва с буквата "c". Тази буква "c" означава completion-status и указва, че файлът е бил изтеглен нацяло ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Това е много добра идея. Реализацията с мд5 сумите страда от race conditions, които са много малко вероятни, ма знае ли човек. Примерно какво се случва, ако уиндоуския клиент лист-не директорията в момента в който скрипта записва файла, но не е записал файла с чексумата...прави локално digest и няма с какво да го сравни, при това положение не е много ясно какво правим, особено ако уиндоуският клиент е направен така че да трие файловете отсреща след като ги е издърпал. Но това с интегритета на архива гарантира някаква атомарност, в смисъл не може да се случат такива изцепки.
Активен

"Knowledge is power" - France is Bacon

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Вече си получил добри идеи. Само да вметна, че ftp сървърите знаят дали изтегленият файл е изтеглен нацяло или не, и записват това в лога, ако е позволено да водят логове за това (xferlog). Когато даден файл бъде изтеглен нацяло без грешки, в xferlog-а се записва ред за този файл, който ред завършва с буквата "c". Тази буква "c" означава completion-status и указва, че файлът е бил изтеглен нацяло ;)
Едно е изтеглен изцяло, друго е записан изцяло и без промени, нали?
Това е много добра идея. Реализацията с мд5 сумите страда от race conditions, които са много малко вероятни, ма знае ли човек. Примерно какво се случва, ако уиндоуския клиент лист-не директорията в момента в който скрипта записва файла, но не е записал файла с чексумата...прави локално digest и няма с какво да го сравни, при това положение не е много ясно какво правим, особено ако уиндоуският клиент е направен така че да трие файловете отсреща след като ги е издърпал. Но това с интегритета на архива гарантира някаква атомарност, в смисъл не може да се случат такива изцепки.
Да, да... защо ли имам спомени че zip ползва crc32, та колизиите ще са доста повече сравнено с md5
И доколкото разбирам файла се създава в линукс, но не се тегли веднага, т.е. има време външна програма да драсне един файл със чексумите. Освен това времето за създаване на чексум е доста по-малко (в огромния процент случаи) от времето за създаване на файла. Така че вероятността да се попадне в ситуацията, която описваш е много малка :)
« Последна редакция: May 22, 2010, 14:33 от romeo_ninov »
Активен

0x2B|~0x2B

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Едно е изтеглен изцяло, друго е записан изцяло и без промени, нали?
Естествено. Затова беше само вмятане - как стои въпросът на сървърно ниво. Въпросът все пак май си е за на клиентско ниво :)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Едно е изтеглен изцяло, друго е записан изцяло и без промени, нали?
Естествено. Затова беше само вмятане - как стои въпросът на сървърно ниво. Въпросът все пак май си е за на клиентско ниво :)
Да, само да избистрим с gat3way как е по-добре да се направи :)  [_]3
Активен

0x2B|~0x2B