Pubblicato il 23/03/2024 da alnao nella categoria Debian

Esistono dei comandi specifici e dedicati al controllo di parti specifiche del sistema, questo articolo vuole essere un riassunto incompleto di questa categoria di comandi per Gnu Linux. Da ricordare che quasi tutte questi sistemi possono essere sostituiti da WebMin, pannello di controllo completo e facile da usare molto più semplice di tanti programmi divisi che possono risultare complessi da imparare ed usare.

Esistono molti programmi per la gestione dell’intero sistema e che permettono di monitorare le risorse e lo stato del proprio sistema, soprattutto se state usando Debian come server: nella shell potete usare il programma top, utilissimo programma che permette di monitorare tutti processi attivi sul sistema, l’elenco delle funzionalità viene elencata semplicemente premendo il tasto “h”. Se utilizzate un desktop, potete provare a configurare i vari widget di controllo sulla barra delle applicazioni e potete provare il programma Monitor di sistema che trovate sul menù Sistema, tramite questo programma potete monitorare memoria e processore, avete anche la possibilità di vedere ed eventualmente uccidere i vari processi e programmi in esecuzione nel vostro sistema. Un programma consigliato è PhpSysInfo, per funzionare necessita il demone web Apache e dopo aver installato l’omonimo pacchetto, basta accedere all’indirizzo:

http://localhost/phpsysinfo/

tramite queste viste di tipo web, il programma permette di recuperare tutte le informazioni utili sul vostro sistema, dalle periferiche al processore, dalla ram agli harddisk e monitorare i livelli di utilizzo.


Per la gestione e il monitoraggio dei processi in esecuzione su un sistema GNU Linux esiste una lunghissima lista di comandi, l’elenco di tutti i processi attivi ed in esecuzione è visualizzabile con il comando ps ma viene quasi sempre usato con il parametro aux che filtra tutti i processi attualmente attivi sul proprio sistema, quindi basta lanciare il comando

$ ps aux

Per avere un task-manager sulla shell basta si può usare il programma top che mostra visione in tempo reale del sistema compreso l’utilizzo delle risorse come la CPU e la memoria, il comando service permette di gestire i vari demoni attivi, come il sendmail o apache, per lo stato basta lanciare il comando

# service nomedemone status

mentre per le varie operazioni basta usare il parametro “stop” oppure “start” per fermare o far partire un servizio.

Il comando kill consente di interrompere l’esecuzione di un processo conoscendo il numero PID del processo da fermare mentre killall permette di bloccare l’esecuzione di un processo utilizzando il suo nome e non attraverso il suo PID, per chi usa un desktop manager può usare il comando xkill che permette di uccidere un programma “visuale” in esecuzione sul server X facendo click sulla finestra del programma con il puntatore del mouse che assume la forma di un teschio simile al classico Jolly Roger dei pirati.

Per la gestione della memoria RAM, è possibile usare il comando free per avere una visione completa della situazione e che offre inoltre dettagli sulla memoria libera nella partizione di swap, utilizzata come supplemento alla memoria RAM disponibile sul sistema, è suggerito l’uso dei parametri “-l” che visualizzano lo stato della memoria e “-k” che visualizza l’output in KByte oppure “-m” che visualizza l’outout in MByte.
Per la gestione dei dischi esiste il comando df che permette di eseguire un’operazione simile a free ma sui dispositivi di archiviazione: il suo scopo è infatti quelli di fornire informazioni sullo stato dell’hard disk del computer in uso e di ogni altro file system montato (pen drive, hard disk esterni e qualsiasi altra periferica esterna montata). Il comando df può essere eseguito sia senza alcun dispositivo target che seguito dal percorso di determinati file system: nel primo caso mostra lo spazio libero su ogni file system montato, nel secondo invece si limita a quelli selezionati manualmente.


Esistono diversi tool per configurare del demone di rete: editare i singoli file di configurazione, usare comandi shell come ifconfig, usare gli strumenti con interfaccia grafica oppure l’uso di web webmin: GNU Linux e Debian mettono a disposizione moltissimi comandi per la gestione della rete, in particolare si può fare qualsiasi cosa anche senza ambiente grafico o Desktop, ovviamente bisogna ben sapere cosa fare e quindi conoscere tutte le teorie sulla rete, i protocolli (IP/TCP) e le impostazioni di sicurezza. In questo documento elenco solo alcuni comandi base che possono essere utili a tutti gli usi, i principali file di configurazione del demone di rete sono:

  • /etc/sysconfig/network contiene le principali configurazioni per il Networking
  • /etc/hosts contiene il mapping fra indirizzi e hostname ed alias. Segue un esempio
  • /etc/services contiene il mapping tra i numeri di porta e i nomi dei servizi

Mentre i principali comandi comandi lanciabili della shell sono:

  • ip addr visualizza tutte le interfacce di rete attive e le relative impostazioni
  • ifconfig eth2 192.168.0.56 netmask 255.255.255.0 configura l’interfaccia di rete eth2 con indirizzo ip indicato
  • route -n visualizza informazioni di routing evitando di risolvere gli ip
  • route add -net 0.0.0.0/0 gw 192.168.0.1 imposta 192.168.0.1 come default gateway
  • /etc/init.d/network start script di avvio del demone networking

per il firewall viene usato il demone IPTables: si tratta di uno dei migliori firewall attualmente disponibili non solo per ambienti GNU Linux, interamente configurabile tramite riga di comando, l’elenco delle policy presenti è disponibile tramite:

# iptables -L

Mentre per modificare le configurazioni del firewall si usano dei parametri particolari del comando:

# iptables -A INPUT -p [PROTOCOLLO] --dport [PORTA] -j ACCEPT

dove PROTOCOLLO è il tipo di protocollo da abilitare (udp oppure tcp). Volendo,è possibile anche aprire alcune porte solo a determinati IP, tramite il passaggio di un apposito parametro seguito dall’IP o dal range di IP, in questo modo:

# iptables -A INPUT -p [PROTOCOLLO] --dport [PORTA] -s 192.168.1.0/24 -j ACCEPT

in questo modo verrà abilitato il traffico proveniente dagli IP del tipo 192.168.1.X sulla porta selezionata mentre per abilitare un solo IP è necessario inserirlo per intero (al posto dello zero). Per monitorare una eventuale rete wireless c’è a disposizione il comando wavemon che mostra la banda, la qualità del segnale, statistiche e le informazioni base, programma molto utile se si deve monitorare la rete senza fili da riga di mando. Non i dilungo molto in questi discorsi visto che non è il mio campo e conviene sempre avere sottomano WebMin o i tool grafici dei vari desktop che risultano sempre più comodi, come firestarter per la configurazione del firewall. Può inoltre capitare di dover impostare un limite all’uso della rete, cioè impostare che un sistema utilizzi al massimo un valore costante di banda in download o upload, per questo si può usare il comando wondershaper installabile dal gestore dei pacchetti e poi da riga di comando basta lanciare il comando

$ wondershaper -a nomeInterfaccia -d limiteDowlonad -u limiteUpload

per esempio:

$ wondershaper -a enp3s0 -d 10000 -u 6500

da notare che i limiti sono in Kbps.


Qualsiasi uso si faccia di un sistema informatico è sempre importante disporre di un sistema di backup ed eventualmente il restore dei dati, grazie ai tanti cloud come Dropbox o Google-Drive è possibile fare tutto tramite internet in maniera veloce, nel mondo GNU Linux esistono molti strumenti che servono proprio per eseguire i backup dei sistema, una lista incompleta di strumenti disponibili su Debian:

  • amanda: Advanced Maryland Automatic Network Disk Archiver cioè un sistema di archiviazione dei dischi
  • backupninja: sistema di meta-backup leggero ed estensibile
  • bacula: backup, ripristino e verifica in rete
  • duplicity: backup automatici incrementali
  • dump: lo storico programma per eseguire backup e dump dei dischi
  • xfsdump: programma per eseguire backup e dump dei dischi

E’ possibile anche costruire un mini script personalizzato, scritto in linguaggio sh, per la copia di backup dei file base, questo script più essere utile per salvare solamente le configurazioni e non tutto il sistema. Per prima cosa per un backup delle configurazione bisogna salvare i file di sistema che possono essere modificati come visto nei precedenti capitoli e poi si elencano alcune dei principali componenti che è possibile salvare in un backup:

  • La configurazione del browser Iceweasel se usato (come segnalibri, cronologia, password e cookies) nella cartella /home/nomeutente/.mozilla/firefox/
  • La posta di Icedove se usata: tutte le mail e tutte le impostazioni nella cartella /home/nomeutente/.mozilla-thunderbird/
  • La cartella di Chrome se usato, se il sistema di sincronizzazione con google-drive è attivo questa cartella può non essere compresa in un eventuale backup, nella cartella /home/nomeutente/.config/google-chrome
  • Tutta la cartella home di ogni utente se ci sono dati interessanti
  • Se si usa il MySql/MariaDb come demone per lo sviluppo non bisogna dimenticarsi di comprendere nel

proprio backup anche i database usati, l’esportazione dei dati viene eseguita con il comando:

$ mysqldump --database nomedatabase > nomefile.sql -u root -p password

(dove poi bisogna inserire la password di root o dell’utente indicato), viene eseguito in salvataggio nel file sql di tutto il db compresa la struttura e gli indici. Per eseguire il ripristino si può usare il comando da riga di comando oppure si può usare più comodamente un tool per l’importazione dello script di backup.

Il kernel mette a disposizione anche il comando dd che è possibile usare per copiare una intera partizione che poi conviene comprimere per evitare di occupare troppo spazio con il bakcup:

dd if=/dev/partizione bs=32M | gzip -c > /mnt/Dati/FileBackukp.dd.gz

Per GNU Linux esistono diversi sistemi di virtualizzazione, lo storico sistema nativo è chiamato Qemu/Kdm la cui interfaccia utente è la Virsh ed esistono moltissime guide, si rimanda alla documentazione ufficiale per maggiori dettagli,
link da inserire
tuttavia la configurazione e creazione con Qemu è considerata obsoleta in quanto nelle ultime versioni di Debian non si usa praticamente mai questo tipo di configurazione.

Per quanto riguarda il programma VMware è possibile scaricarlo dal sito ufficiale, il file messo a disposizione è nel formato bundle, come già visto più volte l’estensione è solo una descrizione, infatti questo è uno script auto-installante, prima però di lanciare l’installazione bisogna verificare l’installazione di alcuni pacchetti:

# apt-get install gcc-6-locales gcc-6-cross-base linux-headers-X.Y.Z-A-amd64 build-essential

e poi procedere con l’installazione vera e propria con i comandi

# chmod +x VMware-Player*.bundle
# ./VMware-Player*.bundle

questo processo installa il programma e crea la voce di menù nel desktop, il programma poi verifica le dipendenze necessarie e visualizza un messaggio di errore all’avvio che indica i pacchetti mancanti (per esempio il pacchetto linux-headers alla versione richiesta da VmWare).

Per quanto riguarda il programma VirtualBox non esiste un repository aggiornato per Debian ma solo per la versione per Debian 10 considerata obsoleta. Il programma comunque può essere scaricato dal sito del programma dalla versione per tutte le distribuzioni GNU Linux ed installata facilmente con pochi comandi:

# apt install build-essential linux-headers-amd64
# wget https://download.virtualbox.org/virtualbox/6.1.22/VirtualBox-6.1.22-144080-Linux_amd64.run
# chmod +x VirtualBox*
# ./VirtualBox*

Da notare che il pacchetto è costantemente in aggiornamento quindi bisogna sempre controllare l’ultima versione disponibile dal sito ufficiale di VirtualBox per rimanere aggiornati.

MENU