Skip to content

Snippets

Elencare la dimensione delle cartelle da console

Elencare la dimensione delle cartelle da console

Per vedere la dimensione delle varie cartelle e sotto cartelle usare il comando DU (disk usage) di Linux:

du -h --max-depth=1 path_iniziale

L’opzione -h mostra i valori in modo human readable: MB, GB ecc.

L’opzione –max-depth mostra il risultato per i livelli di sotto cartelle indicate, 1 per fermarsi al primo livello, 2 per entrare anche nelle sotto cartelle di ogni sottocartella, ecc

Testare l’esecuzione di un DUMP

Testare l’esecuzione di un DUMP

Se stiamo eseguendo un comando che potrebbe andare in contro ad errori come un dump del database, possiamo verificarne l’esito con questo statement

if mysqldum -u ...
then
  echo "Dump eseguito correttamente"
else
  echo "Errore durante il dump!"
  exit 1
fi

 

Scrittura delle variabili nei comandi

Scrittura delle variabili nei comandi

Se dobbiamo usare un valore contenuto in una variabile per comporre stringhe o comandi, BASH necessita di alcune accortezze per riuscire a ricavare il valore della variabile.

Se abbiamo un caso come questo

read -p "Inserisci il nome del file: " NOME_FILE

e vogliamo comporre un nome da dare ad un file (p.e. un backup) a partire da quanto inserito sopra, possiamo avere questo caso

NOME_BACKUP="${NOME_FILE}_bck.tar.gz"

Se non usassimo le parentesi graffe per racchiudere la variabile NOME_FILE, BASH andrebbe in confusione perché cercherebbe una variabile chiamata NOME_FILE_bck e questa non esiste.

Perciò all’interno di una stringa composta con una o più variabili, è buona regola racchiudere le variabili tra parentesi graffe.

Definire un array

Definire un array

In uno script BASH usa questo comando

declare -A NOMEARRAY=(
    [a]="VALORE a"
    [b]="VALORE b"
    ...
)

Questo è un array associativo, nel caso non si voglia un array associativo basta togliere l’uguale e ciò che lo precede, quindi basta elencare i valori, in questo caso il primo elemento sarà lo 0, il secondo 1, ecc.

Chiedere un valore all’utente

Chiedere un valore all’utente

Per richiedere l’inserimento di un valore in uno script BASH usare lo statement read:

read -p "Inserisci valore: " VALORE
echo "Hai inserito $VALORE"

 

Cambiare versione di PHP alla console

Cambiare versione di PHP alla console

Verifica la versione attuale della CLI conphp -v

Poi lancia update-alternatives --config php  e seleziona il numero corrispondente alla versione di php desiderato.

Fai lo stesso per CGI: update-alternatives --config php-cgi

Per sicurezza riavvia il servizio

service apache2 restart

 

Lanciare rsync in modo selettivo

Lanciare rsync in modo selettivo

Per un uso standard di rsync usare questo comando

rsync -avz cartella_origina/ cartella_destinazione/

Dove cartella_destinazione può essere anche un percorso remoto come si farebbe con ssh.

Per escludere una cartella o dei file usare aggiungere –exclude:

rsync -avz --exclude 'PATH_DA_ESCLUDERE' /origine/ /destinazione/

PATH_DA_ESCLUDERE è relativo alla cartella ‘origine’, quindi per esempio ‘var/cache’, senza slash finale o iniziale e indicando il percorso completo relativo.

Se invece di una cartella abbiamo bisogno di escludere più cartelle, file ecc, usare un file contenente la descrizione di tutto ciò che va escluso e usare l’opzione –exclude-from:

rsync -avz --exclude-from='FILE_CON_LE_ESCLUSIONI' /origine/ /destinazione/

Per simulare il trasferimento senza farlo veramente aggiungere l’opzione --dry-run

 

Generare chiavi per SSH

Generare chiavi per SSH

Per generare le chiavi pubblica e segreta per l’accesso tramite console con SSH, eseguire:

ssh-keygen -t ed25519

Per non inserire la password ogni volta che si vuole accedere alla console remota, aggiungere al file .ssh/authorized_keys la chiave pubblica appena generata id_ed25519.pub

 

Apertura di uno script Bash

Apertura di uno script Bash

Per scrivere uno script Bash al fine di eseguirlo nella console di Linux, bisogna inserire nella prima riga il seguente statement:

#!/bin/bash

Per poterno eseguire, poi dobbiamo dargli il flag di eXecution:

chmod +x nome_script.sh

Tutti gli script li nomino con il “.sh” finale per differenziali dagli altri, ma non è indispensabile.

Definire le variabili Bash

Definire le variabili Bash

Negli script Bash, per convenzione si usano nomi maiuscoli per le variabili e si definiscono facendo seguire al nome il simbolo = e il valore.

NOME_VARIABILE=valore

Accortezze:

  • nel nome non si può usare il simbolo “-“
  • prima e dopo l’uguale non ci devono essere spazi
  • in fondo allo statement non ci sono simboli (p.e. ; o altro)