A volte capita di voler automatizzare delle operazioni routinarie da e verso un server ftp. Niente di piu’ facile. Basta infatti creare un file di testo contenente i seguenti comandi
open indirizzo_del_server
user
username password
bin
…
…
quit
Basta salvare il file ed eseguire
ftp -inv < file_input.
Le opzioni i, n e v servono rispettivamente a permettere il download di piu’ file (tramite l’istruzione mget), a inibire l’auto-login e ad avere un output piu’ ricco. L’istruzione bin non e’ necessaria ma e’ sempre meglio usare la modalita’ di trasferimento binaria. Al posto dei puntini potete inserire tutti i comandi ftp che vi servono.
Mi capita spesso di dover sostituire tutte le occorrenze di una certa stringa in uno o piu’ file. Bene, per il momento ho imparato a farlo in tre modi, per la verita’ molto simili tra loro. I comandi utilizzati sono sed, tr e il linguaggio perl.
Cominciamo con tr, la sintassi da utilizzare e’ la seguente
tr stringa_da stringa_a < file_da_elaborare
dove stringa_da rappresenta il testo da sostiutire, mentre stringa a e’ il nuovo testo. Notare il simbolo di redirezione “<”.
Per quanto riguarda il comando sed invece dobbiamo scrivere
sed ’s/stringa_da/stringa_a/’ file_da_elaborare.
Infine, se vogliamo usare il linguaggio perl dobbiamo usare una sintassi molto simile a quella precedente
perl -pi -e ’s/stringa_da/stringa_a/’ file_da_elaborare.
E’ utile far notare una cosa. Mentre per i primi due comandi, tr e sed, il risultato della sostituzione viene scritto a video, ed e’ quindi possibile reindirizzarlo in un ulteriore file, utilizzando il linguaggio perl le sostituzioni avvengono direttamente nel file di origine, il che puo’ essere piuttosto pericoloso.
Per contro, l’utilizzo del perl permette di agire su piu’ file contemporaneamento. Questo e’ possibile anche con sed, ma in questo caso di avra’ un solo output.
Se all’interno dei vostri script di shell avete la necessita’ di inviare una mail, magari per comunicare la riuscita di una procedura, magari accompagnata da un allegato, allora il comando che fa’ per voi e’ mutt.
La sintassi da usare e’
echo "Testo da inviare" | mutt -s "Oggetto della mail" -a file_da_allegare indirizzo@email.it
oppure
mutt -s "Oggetto della mail" -a file_da_allegare indirizzo@email.it < file_con_testo_della_mail.
Inoltre, mutt puo’ essere utilizzato anche come un semplice e veloce client di posta.
Volete riprodurre sul vostro pc il contenuto di un intero sito per averlo sempre a disposizione? wget fa’ al caso vostro. Basta lanciare il comando
wget -krmnp url_sito_da_scaricare
per ottenere una copia esatta del sito sul vostro pc.
Quante volte vi sarete ritrovati nella situazione di dover rinominare un certo numero di file, tutti contenenti una certa matrice. Ad esempio da
pippo_000.jpg, pippo_001.jpg, ecc
a
pluto_000.jpg, pluto_001.jpg, ecc.
Bene, niente di piu’ semplice. Il comando rename fa’ al caso vostro. Basta eseguire il comando
rename pippo pluto pippo_*.jpg
per cambiare tutte le occorrenze di pippo in pluto nei file elencati.
Comodo vero?