Archivi categoria: informatica

Nuovo server, considerazioni.

Alcuni giorni addietro, ho scritto un posto sul “nuovo” serve domestico, ricavato da un portatile Dell XPS 1340. A distanza di due giorni, ho analizzato i dati raccolti dall’ottimo LibreNMS.

La macchina ha in esecuzione un web server (utilizzato prevalentemente in locale), un database MariaDB (immagazzina tutti i dati meteo e dei sensori che raccolgo in casa), LibreNMS (chi non ha un sistema di network management system in casa?) e, da poco, una istanza di rtl_433.

I dati di utilizzo delle CPU non sono molto incoraggianti. Il sistema è piuttosto “carico”, soprattutto a causa di rtl_433 che, lavorando con un sample rate di 1024k, fa sudare un po’ la cpu.

Carico delle CPU (core 1 e core 2).

Nulla di preoccupante, visto che non prevedo di installare altri servizi molto impegnativi (farci girare uno spyserver sarebbe follia), solo che “speravo in migliori performances”. Ciò che mi preoccupa è la temperatura di lavoro della CPU: un portatile rispetto ad un server ha una circolazione di aria meno efficiente, in quanto non è previsto che sia accesso 24×7. Pertanto le temperature sono elevate:

Andamento della temperatura per Core, nel tempo.

Questo dato mi preoccupa, soprattutto in vista dell’estate. Il server sarà posizionato in soffitta, dove l’aria è molto calda in estate. Rischio la frittura, ma correrò il rischio, dotando il portatile di una importante supporto alla dissipazione di calore: una bella ventola a 220V. Il flusso di aria investirà il portatile completamente in modo da rimuovere calore da ogni parte. Se poi le cose andranno male, valuterò la possibilità di dotarmi di un calcolatore tipo HP8300elite, magari con 16GB di ram. Intanto… run baby run!

Please follow and like us:
error

Aggiornamento @home!

Gli eventi del mese di dicembre sono stati veramente importanti per la mia vita. Ma questo è un blog in cui non tratto molto volentieri le mie vicende personali. Pertanto… la permanenza a casa ha comportato che io mi sia finalmente reso conto che l’attuale “server” di casa è arrivato alla frutta.

Attualmente il sistema domestico “gira(va)” su una Cubieboard 2, un aggeggio hardware poco documentato e meno supportato. Dopo lunghe peripezie sono riuscito a farlo funzionare “bene” con notevoli difficoltà per utilizzare in modo dignitoso le GPIO. Ultimamente il dispositivo ha dimostrato una certa instabilità: il web server restituisce “connection refused” e, dopo il riavvio, non viene caricata la shell. Probabile che anche la SD sia arrivata alla frutta, ma anche le risorse di sistema sono allo stremo. Il database con gli eventi meteo è sempre più grande, vorrei implementare anche un ricevitore per i sensori che operano a 433 MHz (vedi altro post). Non è possibile andare avanti con questo hardware, pertanto ho preso una decisione drastica: nuovo server.

L’ideale sarebbe stato prendere un computer refurbished (tipo HP 8300) come quello che sto usando (da un anno) in ufficio. Grandi prestazioni, ottima robustezza, grande silenziosità. Solo che adesso 200 euro per un simile sistema non li voglio spendere. Pertanto l’idea: utilizzare il vecchio portatile Dell XPS13 (1340) del 2009. Il monitor è praticamente andato (funziona solo tenendo lo schermo aperto a 95,33°, ma la cpu funziona bene, ha 8GB di ram e 2 USB 2.0. La CPU è un dual core, non ci farò sicuramente virtualizzazione ma per lo scopo è ottimo. Ingredienti: un nuovo alimentatore ed un pacco batteria.

Proprio ieri sera ho terminato la migrazione dei sistemi, con qualche grattacapo per fare funzionare mailutils. Adesso devo trovare un modo per aggiungere delle GPIO al portatile, in modo da potere controllare dei relè ed avere degli ingressi analogici e digitali magari consultabili in Python. Ci sto lavorando… piano piano!

Please follow and like us:
error

Linux: ciclo for su nomi con spazi

Mi è successo di dovere eseguire delle operazioni su una lunga serie di files contenuti in una directory condivisa con samba. Per semplificarmi la vita (ricordo che non sono un programmatore…) ho deciso di popolare un array con il path dei files e di scorrerlo per eseguire le operazioni su di essi.

I primi problemi sono nati in fase di parsing dei nomi dei files: se sono presenti degli spazi samba li esporta inserendo i nomi tra “apici singoli”. Inoltre, quando il nome viene processato, ogni sezione del nome tra due spazi è considerata come un elemento dell’array.

Ho trovato delle indicazioni piuttosto interessanti su questo sito: si parla di ridefinizione del Internal field separator ($IFS). Si tratta di una variabile di sistema che definisce il carattere o i caratteri che sono utilizzati per separare una stringa in sottostringhe. Tipicamente è impostato come “spazio” o “tab” o “newline”. In ambiente Linux è impostato a “spazio”. Ridefinire questa variabile consente di istruire il sistema a non considerare lo spazio come separatore. 

Una volta che la variabile è stata ridefinita, lo spazio non è un separatore ed i nomi files non vengono “spezzettati” in tanti frammenti. Importante ricordare che la variabile deve essere reimpostata al valore originale prima che lo script termini.

SAVEIFS=$IFS
IFS=$(echo -en “\n\b”)
for i in `ls -ld $MOUNT_POINT1/* | awk ‘{ print substr($0, index($0,$9)) }’ `
do
ARRAY_FOLDER[ARRAY_INDEX_FOLDER]=$i
ARRAY_INDEX_FOLDER=$[ $ARRAY_INDEX_FOLDER+1]
done
IFS=$SAVEIFS

Please follow and like us:
error

Un disco nuovo… quasi

Nel 2015 ho acquistato un bellissimo NAS della QNAP che monta dei dischi WDC fabbricati nel gennaio 2015. Non ho MAI avuto un problema sui dischi, tutto lo S.M.A.R.T. è a posto, non ci sono errori o cali di prestazioni.

Visto che la capacità del sistema è agli sgoccioli e che i dischi hanno “girato” per 3 anni, ho deciso di rimpiazzare le unità. La strategia prevede di acquistare un disco ogni 4-6 mesi, in modo che non siano perfettamente coevi.

Ordino il disco su Amazon, da un venditore del quale non farò il nome. Arriva l’unità perfettamente imballata. La monto, faccio il rebuild dell’array e tutto va bene.

Oggi mi arriva una mail minacciosa del NAS: il disco nell’unità 1 ha un valore smart non corretto e viene marcato come anomalo. Si tratta proprio del disco “nuovo”. Poco male, impreco una buona 40ina di minuti, avvio la procedura di reso sul sito e metto il disco vecchio che (intelligentemente) avevo conservato nel cassetto.

Il disco che mi hanno venduto… è vecchio (più vecchio di quelli che ho installato).

Mai più hard disk tramite Amazon: si va in negozio e si contratta!

Please follow and like us:
error

Impazzire con la mail

Ho diversi sistemi linux-based sparsi in giro per la provincia. In tutti ho uniformato la configurazione del sistema di gestione della posta elettronica, impostando un funzionamento come “satellite” ed usando gmail per il lavoro “sporco”.

Uno dei miei sistemi, con sistema operativo Debian 9.4 si è sempre rifiutato di inviare la mail a “se stesso”. L’errore che ho sempre ottenuto è:

DNS Error: 21091730 DNS type ‘mx’ lookup of linuxade responded with code NXDOMAIN Domain name not found: linuxade

Ho controllato l’output del comando:
root@linuxade:/etc# exim4 -bP primary_hostname
primary_hostname = localhost

Ho provato un sacco di strade diverse. L’unica azione che ha risolto il problema è stata la riconfigurazione di /etc/hosts nella sezione ipv6 passando dalla prima alla seconda versione. La prima scrittura penso sia stata una configurazione temporanea per fare qualche prova.

# The following lines are desirable for IPv6 capable hosts
::1  localhost ip6-localhost ip6-loopback linuxade

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback

Cambiato il contenuto del file, riavviato exim4, adesso il comando viene eseguito correttamente:
root@linuxade:/etc# exim4 -bP primary_hostname
primary_hostname = linuxade

Finalmente mi arrivano le email con gli errori dovuti all’esecuzione degli script!

Please follow and like us:
error

USB Disk Docking Adapter. Pare facile!

Come passare un paio di ore a debuggare un problema.

Disco1 e Disco2 sono due HD identici della Western DIgital da 4TB che utilizzo per fare i backup off-line. Copio i files e poi li stacco e li metto in un cassetto. Disco1 lo uso prevalentemente con una docking station USB della Sabrent, modello DS-UBLK USB3.0, collegata al desktop con sistema operativo Linux. Prendo il disco, creo la partizione (GPT) e ci metto supra un bel File System ext4. Copio i files tutto funziona bene. Succede poi che io debba usare Disco1 per fare il backup con “Clonezilla” di una macchina che non è nella mia stanza. Prendo Disco1, un adattatore SATA USB della Vultech, avvio Clonezilla e non trovo la partizione. Vabbè, ho fretta e prendo quindi Disco2 (sempre attaccato al Vultech), creo una partizione ed un FS e procedo aul backup.

Tornato in ufficio tutto funziona: Disco1 nella docking, Disco2 attaccato al Vultech e posso spostare i files come mi pare.

Per fare una prova e cercare di capire come mai sul Vultech non riesco a leggere Disco1, inverto la posizione dei dischi: Disco1 e Disco2 sono illeggibili se scambio gli adattatori (Disco2 è attaccato alla docking e visto come /dev/sdc, Disco1 è collegato alla Vultech e visto come /dev/sdd):

root@hp-ufficio:~# fdisk -l /dev/sdc
Disk /dev/sdc: 3,7 TiB, 4000787030016 bytes, 976754646 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33550336 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device Boot Start End Sectors Size Id Type
/dev/sdc1 1 4294967295 4294967295 16T ee GPT

root@hp-ufficio:~# fdisk -l /dev/sdd
GPT PMBR size mismatch (976754645 != 3519069871) will be corrected by w(rite).
Disk /dev/sdd: 3,7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device Boot Start End Sectors Size Id Type
/dev/sdd1 1 976754645 976754645 465,8G ee GPT

Le dimensioni riportate da fdisk sono completamente errate e non posso accedere alle partizioni:

root@hp-ufficio:~# blockdev –getbsz /dev/sdc1
blockdev: cannot open /dev/sdc1: No such file or directory
root@hp-ufficio:~# blockdev –getbsz /dev/sdd1
blockdev: cannot open /dev/sdd1: No such file or directory
root@hp-ufficio:~#

Tuttavia la dimensione dei dischi viene correttamente rilevata con i comandi a basso livello:

root@hp-ufficio:~# sg_readcap –16 /dev/sdc
Read Capacity results:
Protection: prot_en=0, p_type=0, p_i_exponent=0
Logical block provisioning: lbpme=0, lbprz=0
Last logical block address=976754645 (0x3a3817d5), Number of logical blocks=976754646
Logical block length=4096 bytes
Logical blocks per physical block exponent=0
Lowest aligned logical block address=0
Hence:
Device size: 4000787030016 bytes, 3815447.8 MiB, 4000.79 GB
root@hp-ufficio:~# sg_readcap –16 /dev/sdd
Read Capacity results:
Protection: prot_en=0, p_type=0, p_i_exponent=0
Logical block provisioning: lbpme=0, lbprz=0
Last logical block address=7814037167 (0x1d1c0beaf), Number of logical blocks=7814037168
Logical block length=512 bytes
Logical blocks per physical block exponent=0
Lowest aligned logical block address=0
Hence:
Device size: 4000787030016 bytes, 3815447.8 MiB, 4000.79 GB
root@hp-ufficio:~#

Mi gratto la testa ed inizio a cercare qualche notizia in rete. Incappo in un paio di post in cui si parla di problemi analoghi e di questo problema. Decido quindi di aggiornare il firmware della docking, seguendo le istruzioni trovate in questo sito. L’aggiornamento è fattibile solo in ambiente windows. Il firmware originale del dispositivo (acquistato a febbraio 2018) è davvero vecchio. Installo la versione 124. Dopo l’aggiornamento la situazione è questa:

Disco2, creato con Vultech e messo nella docking station funziona perfettamente.
Disco1, creato con la docking prima dell’aggiornamento, collegato alla Vultech non viene visto, se collegato alla docking idem. Problema risolto? Provo a ricreare una partizione ed un file system su Disco1 nella docking. Adesso funziona tutto, il Vultech vede il disco e la partizione e li usa correttamente!

RSS
Facebook
Google+
Twitter
LinkedIn

Please follow and like us:
error