Zadejte hledaný výraz...

FTPs – jak zjistim jestli je vzdálený soubor už na serveru komplet?

horonet
verified
rating uzivatele
6. 2. 2017 13:05:36
Zdravím.
Mám za úkol napsat v BASHi script, který se přes FTPs koukne na server a stáhne z určité složky všechny soubory s danou příponou - pokud tam jsou.
Žádný problém. Z cronu periodicky volám a když je, tak stáhnu. Jenže jak ošetřit stav, kdy se mi časově sejde spuštění mého scriptu s tím, že z jiné strany na server zrovna někdo soubor uploaduje a ten tam ještě není celý?
Jsem omezen následovně:
a) na FTP nemůžu nic spouštět, abych tam lokálně porovnával velikosti a přidával pak třeba nějaký pomocný status soubor
b) toto nelze vyžadovat ani ručně od toho, kdo tam soubory uploaduje
c) na straně stahování je použit klient lftp
Poradí někdo nějakou elegantnější metodu, než se v nějaké smyčce přes lftp ls příkaz koukat na výpis vzdálené složky a porovnávat velikosti?
Předem díky.
6. 2. 2017 13:05:36
https://webtrh.cz/diskuse/ftps-jak-zjistim-jestli-je-vzdaleny-soubor-uz-na-serveru-komplet#reply1257741
TomasX
verified
rating uzivatele
(4 hodnocení)
6. 2. 2017 13:15:33
pokud máš pod kontrolou nahrávání, můžeš nastavit, aby se soubor nenahrával in-place ale do tmp složky a po přenosu přesunul, pokud to je web, tak mimochodem ani během nahrávání daný web neběží.
Další možnost je kontrolovat datum změny souboru, to ale není spolehlivé a většina klientů/serverů tuhle změnu provádí až po dokončení nahrávání.
V tomhe nemáš moc možností a nevím, jak bych to zajistil, ftp na tohle prostě není vhodný protokol. Lze to obejít max. bruteforce a zkusit to celé stáhnout znovu, porovnat jestli se nějaké soubory změnily a ty stahovat do té doby než se skončí jejich změny.
Zároveň mysli na to, že v ftp protokolu neprobíhá výpoče žádných kontrolních součtů a při přenosu se mohou data poškodit (lze řešit přes ftps).
6. 2. 2017 13:15:33
https://webtrh.cz/diskuse/ftps-jak-zjistim-jestli-je-vzdaleny-soubor-uz-na-serveru-komplet#reply1257740
horonet
verified
rating uzivatele
8. 2. 2017 15:15:35
Napsal TomášX;1361069
pokud máš pod kontrolou nahrávání, můžeš nastavit, aby se soubor nenahrával in-place ale do tmp složky a po přenosu přesunul, pokud to je web, tak mimochodem ani během nahrávání daný web neběží.
Další možnost je kontrolovat datum změny souboru, to ale není spolehlivé a většina klientů/serverů tuhle změnu provádí až po dokončení nahrávání.
V tomhe nemáš moc možností a nevím, jak bych to zajistil, ftp na tohle prostě není vhodný protokol. Lze to obejít max. bruteforce a zkusit to celé stáhnout znovu, porovnat jestli se nějaké soubory změnily a ty stahovat do té doby než se skončí jejich změny.
Zároveň mysli na to, že v ftp protokolu neprobíhá výpoče žádných kontrolních součtů a při přenosu se mohou data poškodit (lze řešit přes ftps).
... díky za odp. já právě nahrávání pod kontrolou nemám a ke stahování je jen FTPs protokol. ale vyřešil jsem to přes ls. stáhnu seznam. vykleštim názvy a velikosti , počkám 5s a udělám to znova a porovnám. když se vše shoduje, začnu stahovat soubory.
8. 2. 2017 15:15:35
https://webtrh.cz/diskuse/ftps-jak-zjistim-jestli-je-vzdaleny-soubor-uz-na-serveru-komplet#reply1257739
Pro odpověď se přihlašte.
Přihlásit