This shows you the differences between two versions of the page.
|
rl:labs:09:contents:04 [2013/08/24 13:35] 127.0.0.1 external edit |
rl:labs:09:contents:04 [2024/12/04 17:52] (current) laura.ruse [04. [15p] Descărcare recursivă de resurse web] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ==== 04. Lorem ipsum ==== | + | ==== 04. [15p] Descărcare recursivă de resurse web ==== |
| - | ... | + | La adresa ''%%http://red/folder%%'' se află o structură de directoare și fișiere. Pe stația ''host'', descărcați întreaga structură folosind o singură comandă ''wget'' cu parametrul corespunzător. |
| + | <note tip> | ||
| + | Pentru a identifica opțiunea corespunzătoare, căutați în pagina de manual a ''wget'' după șirul ''recursive''. | ||
| + | </note> | ||
| + | Folosiți utilitarul ''tree'' pentru a lista conținutul directorului descărcat. Este posibil ca pachetul ''tree'' să fie deja instalat pe ''host''. Dacă nu este instalat, atunci puteți folosi următoarea comandă pentru a-l instala: | ||
| + | <code bash> | ||
| + | root@host:~# apt-get install tree | ||
| + | </code> | ||
| + | |||
| + | Când rulați ''tree'' pe directorul descărcat observați prezența mai multor fișiere cu nume de forma ''index.html?C=S;O=D''. Aceste fișiere sunt fișiere de tip directory listing generate de serverul web și nu avem nevoie de ele. Ștergeți structura de directoare pe care tocmai ați descărcat-o pe stația ''host'' și descărcați-o din nou ignorând aceste fișiere. | ||
| + | |||
| + | <note tip> | ||
| + | Urmăriți discuția de [[http://stackoverflow.com/questions/273743/using-wget-to-recursively-fetch-a-directory-with-arbitrary-files-in-it|aici]]. Să aveți în vedere și partea din discuția care conține șirul //%%"without the hostname"%%//. | ||
| + | </note> | ||
| + | |||
| + | Structura de directoare trebuie să fie similară cu:<code> | ||
| + | root@host:~# tree folder/ | ||
| + | folder/ | ||
| + | ├── embedded | ||
| + | │ ├── Qualcomm | ||
| + | │ │ ├── Krait | ||
| + | │ │ │ └── info.txt | ||
| + | │ │ └── Scorpion | ||
| + | │ │ └── info.txt | ||
| + | │ └── TI | ||
| + | │ ├── OMAP3 | ||
| + | │ │ └── info.txt | ||
| + | │ └── OMAP4 | ||
| + | │ └── info.txt | ||
| + | └── mobile | ||
| + | ├── Apple | ||
| + | │ ├── iPadAir | ||
| + | │ │ └── info.txt | ||
| + | │ └── iPhone5S | ||
| + | │ └── info.txt | ||
| + | |||
| + | ├── Nexus4 | ||
| + | │ └── info.txt | ||
| + | └── Nexus7 | ||
| + | └── info.txt | ||
| + | |||
| + | 14 directories, 8 files | ||
| + | </code> | ||
| + | |||
| + | <hidden> | ||
| + | <solution> | ||
| + | Pentru descărcarea inițială folosim comanda ''wget'' cu opțiunea ''-r'' apoi rulăm ''tree'':<code bash> | ||
| + | root@host:~# wget -r http://red/folder/ | ||
| + | [...] | ||
| + | root@host:~# tree red/ | ||
| + | [...] | ||
| + | </code> | ||
| + | Ștergem vechea structură:<code bash> | ||
| + | root@host:~# rm -fr folder/ | ||
| + | </code> | ||
| + | Ca să avem un output mai aranjat, rulăm următoarea comandă ''wget'':<code bash> | ||
| + | root@host:~# wget -r -nH -np --reject "index.html*" http://red/folder/ | ||
| + | </code> | ||
| + | Se vor descărca astfel doar fișierele utile, cele existente în structura de directoare de pe server. | ||
| + | </solution> | ||
| + | </hidden> | ||