Fórum Root.cz

Hlavní témata => Software => Téma založeno: niekto 19. 06. 2018, 21:28:50

Název: Automatizované stahování souboru
Přispěvatel: niekto 19. 06. 2018, 21:28:50
Prosim, nejake rady ako by ste vy riesili takuto situaciu? Mam jednu URL adresu s PDF suborom, ktory sa kazdy den aktualizuje (ale archiv tam neexistuje). Chcel by som si uchovavat aj starsie verzie, takze ma napada nejake automatizovane stahovanie (wget?) s tym, ze by sa toto PDFko do ukladalo do nejakej zlozky tak, ze v nazve suboru bude datum a cas v momente stiahnutia. Da sa to cez cron alebo existuje nejaky program na to? Idealne terminalovy. Dik za tipy.
Název: Re:Automatizovane stahovanie suboru
Přispěvatel: Martin 19. 06. 2018, 21:37:44
Do cronu:
Kód: [Vybrat]
wget http://www.africau.edu/images/default/sample.pdf --output-document=/home/foo/document_`date +%Y-%m-%d_%H:%M:%S`.pdfDatum se dá přeformátovat dle libosti.
Název: Re:Automatizovane stahovanie suboru
Přispěvatel: BoneFlute 19. 06. 2018, 21:57:47
Přes cron, a jméno souboru pomocí programu `date`. Doporučuju tím cronem spouště script až ve kterém bude to vlastní ukládání.
Název: Re:Automatizované stahování suboru
Přispěvatel: Jenda 20. 06. 2018, 00:33:45
Doporučil bych nepoužívat v názvech souborů dvojtečky, nemají s tím problém jen Windows, ale někde se to escapuje a někde ne a pak je z toho člověk zoufalý.
Název: Re:Automatizovane stahovanie suboru
Přispěvatel: Ja 20. 06. 2018, 08:27:05
Do cronu:
Kód: [Vybrat]
wget http://www.africau.edu/images/default/sample.pdf --output-document=/home/foo/document_`date +%Y-%m-%d_%H:%M:%S`.pdfDatum se dá přeformátovat dle libosti.

Toto fungovat nebude. Znak '%' ma v crontable specialni vyznam, je nutne ho vyescapovat pomoci '\'.
Název: Re:Automatizované stahování souboru
Přispěvatel: niekto 20. 06. 2018, 16:58:21
Dakujem
Název: Re:Automatizované stahování souboru
Přispěvatel: Honza1Ubuntu 21. 06. 2018, 19:59:26
Ja jsem to uz parkrat resil a delam to takto (bash skript, ktery das do cronu):

Kód: [Vybrat]
#!/bin/bash

## Stahnes do slozky, kde si nadefinujes cestu:
mkdir -p /slozka pro soubory s celou cestou/
cd  /slozka pro soubory s celou cestou/

wget --user-agent="Mozilla/45.0" "http://www.africau.edu/images/default/sample.pdf"

## Prejmenujes dle data, format YYYYMMDD :
for FILE in sample* ; do PROMENA=$(stat -c %y $FILE | sed 's/\([^-]*\)-\([^-]*\)-\([0-9]*\) \([^:]*\).*/\1\2\3/'); mv $FILE KazdodenniPDF_$PROMENA.pdf; done

## Pokud se soubor meni vickrat za den, prejmenujes tak aby v nazvu byla i hodina:
## for FILE in sample* ; do PROMENA=$(stat -c %y $FILE | sed 's/\([^-]*\)-\([^-]*\)-\([0-9]*\) \([^:]*\).*/\1\2\3\4/'); mv $FILE KazdodenniPDF_$PROMENA.pdf; done


Nove jmeno soubory vcetne datumu nesmi zacinat sample, jinak ti to bude pokazde prejmenovavat vse.
Nic se nejspis nestane, je to ale prace navic (po par letech dost prace navic a taky vyssi riziko chyby).
Datum souboru muze byt podle data, kdy byl ulozen na server, pokud ma timestamp, jinak je to cas ve tvem PC, kdy byl soubor stahnut.
Pokud jsou v nazvu specialni nealfanumericke znaky, bude se muset prejmenovani trochu upravit.