I comandi SSH di linux sono una figata assurda, e si possono usare per fare un sacco di cose sul server. L’unica pecca (ma proprio piccolina) è che senza di google non riuscirai mai ad eseguire le operazioni, perchè diciamocelo, difficilmente si riuscirà a ricordare tutti i comandi a memoria, e tra comandi e parametri, beh, è un casino. Riassumo quindi un po’ di operazioni che uso io con SSH su un server Centos. Ma come al solito, lo faccio più che altro per me stesso.
FPT (via SSH)
questo è anche semplice se ci pensiamo, ma a volte non c’è il tempo di pensarci su, quindi:
utente@server:ftp utente@serverremoto.ext
immettere la password al prompt
poi:
lcd
per vedere la cartella corrente in locale (se sei collegato in ssh, è il server ssh ovviamente)
lcd nome_cartella_locale
per spostarti nella cartella locale
prompt no
per evitare di confermare ogni file da trasferire
hash
se vuoi vedere il progresso di caricamento del file con tanti ####
ls
per vedere le cartelle del server ftp (quello a cui ti sei collegato)
cd nome_cartella_remota
per aprire una cartella remota
mget *
per prelevare dal server remoto tutti i file. Oppure anche
mget *.jpg
per prelevare solo i .jpg (ma anche *_big.jpg, per esempio)
mput *
per trasferire dal locale al remoto, secondo le regole di cui sopra.
Rinominare in batch tanti file
per esempio, se togliere “_big” da tutti i file .jpg che ho sul server (es: immagine1_big.jpg e rinominarla in immagine1.jpg)
find . -name "*_big.jpg" -exec sh -c 'mv "$1" "${1%_big.jpg}.jpg"' _ {} \;
Convertire da MAIUSCOLO a minuscolo tutti i file di una cartella
Dai ammettiamolo: ‘sta storia che in linux “FILE.jpg” è diverso da “file.jpg” è una gran rottura, ma se c’è, a qualcuno servirà. Io per intanto preferisco uniformare tutti i file in minuscolo, e per farlo a volte devo riscrivere tutti i nomi file. Ma c’è la possibilità di farlo fare al terminale/shell
for a_file in *;do mv -v $a_file `echo $a_file | tr [:upper:] [:lower:]` ;done;
(sia in linux che in OSX, questo funziona.)
TAR: comprimere una cartella
se hai a disposizione cPanel è sicuramente più facile tutto, ma se devi comprimere una grossa cartella, che magari contiene tantissimi file (immagina una cartella /uploads di wordpress, con tutte le dimensioni delle immagini caricata). Beh, usare la shell per comprimere in un unico file ti aiuta a seguire il progresso e vedere a che punto è.
Dopo aver raggiunto la cartella che vuoi comprimere, attraverso i vari “cd nomecartella”:
tar -vcf nomefilecompresso.tar.gz .
il nomefilecompresso.tar.gz è ovviamente il nome del file compresso, mentre il “.” (punto) indica di comprire tutto il contenuto, cartelle e files.
Find per cercare, -delete per cancellare
Può succedere di dover cancellare, all’interno di una cartella e sottocartelle, tutti i file che si chiamano, per esempio, “hello.htm”. Per cercarli usiamo il comando:
find . -name hello.htm
oppure, meglio ancora:
find . -type f -name "*.conf"
Se oltre che cercali, vogliamo anche cancellarli, il comando sarà:
find . -name hello.htm -delete
Se stai cercando un elenco di tutti i file che sono stati caricati una certa data, il comando da eseguire sarà:
find . -type f -mtime -17 ! -mtime -16 -exec ls -la {} \;
In questo caso troverà i file tra 17 giorni e 16.