1.16. Transferència de fitxers des del terminal
La transferència d’arxius des d’un terminal és una tasca fonamental per als administradors de sistemes i desenvolupadors que treballen amb servidors remots. Tot i que hi ha moltes eines gràfiques per transferir arxius, les opcions de la línia d’ordres són molt útils per a l’automatització i el maneig de grans quantitats de dades. Exemples de diferents ordres es mostren a la taula 17.
Taula 17. Ordres de transferència de fitxers.
Ordre | Significat |
scp |
Secure copy |
sftp |
Secure File Transfer Protocol |
rsync |
una eina ràpida, versàtil, remota (i local) de còpia de fitxers |
wget |
Podeu utilitzar-lo per recuperar contingut i fitxers de diversos servidors web |
curl |
curl L’URL del client (cURL) us permet intercanviar dades entre el dispositiu i un servidor a través d’una interfície de línia d’ordres (CLI) |
Per establir una sessió de treball cal conèixer el nom de la màquina remota o la seva adreça IP. També hem de disposar d’un nom d’usuari (en anglès, login name) i d’una contrasenya d’accés (en anglès, password).
Una de les ordres més comunes per transferir arxius és scp
(Secure Copy). Aquesta ordre s’utilitza per copiar arxius d’un servidor a un altre utilitzant el protocol SSH. La sintaxi bàsica és la següent:
$ scp [opcions] origen destí
Per exemple, si volem copiar l’arxiu arxiu.txt de la carpeta origen del servidor remot a la nostra carpeta actual a la màquina local, podem utilitzar l’ordre següent:
$ scp usuario@servidor-remoto:/path/al/origen/arxiu.txt .
El punt final en la línia d’ordre indica el directori actual de la màquina local.
També existeix l’ordre sftp
(en anglès, Secure File Transfer Protocol), que és similar al client FTP però amb una capa de seguretat addicional a través de SSH. Amb sftp
, podem connectar-nos a un servidor remot i transferir arxius de manera segura. La sintaxi bàsica és la següent:
$ sftp usuario@servidor-remot
put seqüencia.fa repositori-seqüencies/
Un cop connectats, podem utilitzar ordres com put
per enviar arxius des de la nostra màquina local al servidor remot, o get
per descarregar arxius del servidor remot a la nostra màquina local. En l’exemple anterior, hem descrit com podem enviar l’arxiu seqüència.fa des de la nostra màquina local a la carpeta repositori-seqüències en el servidor remot.
Una altra ordre útil és rsync
, que permet sincronitzar directoris i arxius entre dos sistemes. A més, rsync
té la capacitat de transferir només els arxius modificats, cosa que el fa ideal per fer còpies de seguretat de manera eficient. La sintaxi bàsica de rsync
és la següent:
$ rsync [opciones] origen destí
Per exemple, si volem sincronitzar la carpeta work-hib del nostre equip local amb la carpeta work en un servidor remot, podem utilitzar l’ordre següent:
$ rsync -avz /path/a/work-hib usuario@servidor-remoto:/path/a/work
Una altra eina útil és wget
, que permet descarregar arxius des de servidors web fent ús d’ordres de terminal. Aquesta ordre és molt útil per descarregar dades de seqüenciació de genomes complets o de grans bases de dades biològiques, arxius des d’internet i automatitzar el procés de descàrrega. Es mostra a continuació com descarregar la base de dades COSMIC (Catalogue Of Somatic Mutations In Cancer) utilitzant wget
$ wget https://cancer.sanger.ac.uk/cosmic/file_download/GRCh38/cosmic/v94/CosmicCodingMuts.vcf.gz
Aquesta ordre descarrega l’arxiu CosmicCodingMuts.vcf.gz de la pàgina web del projecte COSMIC. Aquest arxiu conté les mutacions somàtiques trobades en la seqüenciació d’ADN de tumors de càncer. Un cop descarregat, el podeu eliminar, ja que no en farem res d’aquest arxiu.
Finalment, una altra eina útil és curl
, que també permet descarregar arxius des de servidors web i transferir arxius des d’un terminal. La principal diferència entre wget
i curl
és que curl
és més versàtil i permet transferir arxius mitjançant una gran varietat de protocols, incloent-hi FTP, FTPS, HTTP, HTTPS, SCP i SFTP.
En resum, la transferència d’arxius des d’un terminal és una tasca fonamental per als administradors de sistemes i desenvolupadors que treballen amb servidors remots. Les ordres scp
, rsync
i sftp
són algunes de les eines més comunes i útils per transferir arxius de manera segura i eficient.
Hi ha una ordre que ajuda a esbrinar l’espai disponible d’un disc, l’ordre df (disk free), i una altra per esbrinar l’espai ocupat per una carpeta, l’ordre du (disk use). Analitzem un parell d’exemples per veure el seu funcionament.
df
Espai disponible en disc. Això ens retornarà les particions muntades, l’ús d’espai en cadascuna i el que ens queda de resta, i tot de forma fàcil per llegir, sobretot perquè s’hi afegeix l’opció -h, que significa human-readable (en català, humanament llegible).
$ df -h
Filesystem Size Used Available Use% Mounted on udev 959M 0 959M 0% /dev tmpfs 199M 1,4M 197M 1% /run /dev/sda5 20G 16G 2,9G 85% / tmpfs 991M 0 991M 0% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 991M 0 991M 0% /sys/fs/cgroup /dev/loop1 64M 64M 0 100% /snap/core20/1852
du
Mida total d’una carpeta. Ús de disc. Mostra l’espai que està ocupat en disc. Aquesta ordre té diverses opcions i les més utilitzades són les opcions -b (-bytes); -s (sumarize; en català, en resum), -h (-human-readable; en català, humanament llegible), que imprimeix les mides de forma llegible, quan agreguem la mida dels arxius en kb, mb, gb; i, finalment, l’ordre -c, que emprarem per mostrar el total de l’espai consumit, al final de la llista.
$ du -hs * | sort -nr | head -5
204M fasta_sequences 45M Escriptori 12G hg38 12M Work 4,0K Videos
Amb aquest exemple, es visualitzen els 5 directoris més pesants en el nostre /home/student utilitzant l’ordre du, així com sort per ordenar i head per visualitzar únicament alguns dels directoris de la carpeta.
I finalment s’esmenten ordres amb les quals s’obté informació del sistema, com són uname
, hostname
y host
.
uname
L’ordre uname
(unix name). Ofereix informació sobre Kernel del sistema, informació sobre el tipus de Linux en el qual estem. Teclegeu en el terminal:
$ uname
Linux
$ uname -a
Linux ubuntum0151 5.15.0-71-generic #78~20.04.1-Ubuntu SMP Wed Apr 19 11:26:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
hostname
L’ordre hostname
s’utilitza per identificar de forma única un ordinador en una xarxa i s’utilitza per accedir-hi i permetre que altres ordinadors de la xarxa s’hi comuniquin. El hostname
pot ser un nom descriptiu o un nom únic assignat pel sistema operatiu de l’ordinador o servidor. Per exemple, el hostname
d’un servidor web podria ser webserver.exemple.com, on webserver és el nom de l’ordinador, exemple és el nom del domini i com és el domini de nivell superior. Si teclegeu hostname al vostre terminal s’obté:
$ hostname -f
ubuntum0151
sent ubuntum0151 el hostname de la màquina virtual que heu instal·lat.
host
L’ordre host
determina l’IP d’HOST, i en el context de la informàtica, host
es refereix a un servidor o ordinador que allotja i ofereix serveis o recursos a altres ordinadors connectats en una xarxa. Si s’escriu host -a
es desplega tota la informació de DNS.
$ host ubuntum0151
ubuntum0151 has address 10.0.2.15 ubuntum0151 has address 172.17.0.1 ubuntum0151 has IPv6 address fe80::1cc6:9af7:249f:6c5e
$ host -a ubuntum0151
host -a ubuntum0151 Trying "ubuntum0151" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27128 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;ubuntum0151. IN ANY Received 29 bytes from 127.0.0.53#53 in 188 ms