This shows you the differences between two versions of the page.
rl:labs:09:contents:04 [2013/11/17 10:43] mihai.carabas [04. Lorem ipsum] |
rl:labs:09:contents:04 [2023/11/05 13:08] (current) vlad_iulius.nastase |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 04. Tutorial port forwarding (DNAT) ==== | + | ==== 04. [15p] Descărcare recursivă de resurse web ==== |
- | * tutorial + exercițiu | + | La adresa ''%%http://red/folder%%'' se află o structură de directoare și fișiere. Pe stația ''host'', descărcați întreaga structura folosind o singură comandă ''wget'' cu parametrul corespunzător. |
- | * tutorial pentru DNAT SSH pe red | + | |
- | * testat de pe sistemul fizic | + | |
+ | <note tip> | ||
+ | Pentru a identifica opțiunea corespunzătoare, căutați în pagina de manual a ''wget'' după șirul ''recursive''. | ||
+ | </note> | ||
+ | Instalați utilitarul ''tree'' și folosiți-l petru a lista conținutul directorului 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 instalăm și rulăm ''tree'':<code bash> | ||
+ | root@host:~# wget -r http://red/folder/ | ||
+ | [...] | ||
+ | root@host:~# apt-get install tree | ||
+ | [...] | ||
+ | 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> |