Michele Agostinelli Blog

Linux

Alla fine ho ceduto, ho acquistato un mini pc usato di qualche anno fa. Come molti si voi sapranno, da anni il pc sempre acceso di casa mia è un raspberry pi 4, dove gira la domotica di casa (#homeassistant) e qualche altro (piccolo) servizio.

Da tempo ero arrivato un po' al limite, perché ho un sacco di sensori e vorrei conservare un po' di storico (comodo ad esempio per analizzare consumi), ho quindi iniziato a guardarmi intorno.

Per primo ho pensato al pi 5, a cui però vanno aggiunti alimentatore, case, memorie, e quindi il prezzo quasi raddoppia. Da lì sono passato a guardare cosa offriva il mercato dell'usato, ed eccomi giunto a questa riflessione che condivido con voi.

Innanzi tutto i minipc, grazie ai nuovi dischi nvme sono sia compatti, ma anche silenziosi, e poi finalmente da qualche anno a questa parte, non si guarda solo all'evoluzione in termini di prestazioni, ma anche all' efficienza energetica. Anche l'ormai affermata architettura x86 è stata costretta a correre ai ripari nei confronti di arm, molto più efficiente sotto questo punto di vista.

Altra cosa da considerare è che negli ultimi 4-5 anni non c'è stata chissà quale rivoluzione sull'hardware e quindi un pc di qualche anno fa è più che sufficiente per i miei scopi (e quelli di molti) . Il sistema operativo #GnuLinux è molto efficiente nel “ridare” vita a vecchi pc, è in pratica un matrimonio perfetto!

In rete (ebay, subito, amazon) si trovano molti di questi pc ricondizionati, in quanto spesso sono usati, o meglio noleggiati, da aziende per pc ad uso ufficio.

Ovviamente questi mini pc hanno un tdp (= consumo) più alto di un raspberry pi, ma anche molta più potenza di calcolo! Potete addirittura metterci sopra #proxmox e vari server virtuali, a patto di avere memoria ram a sufficienza. Io penso che opterò per #debian su cui userò un po' di software nativi (pacchetti ufficiali) e un po' di immagini #docker alla bisogna.

Il modello che ho scelto (Lenovo m900 tiny) è dotato di processore Intel Core i5 6500T, dove la T finale, appunto, strizza l'occhio ai bassi consumi.

Il pc è anche dotato di varie uscite video e può anche essere montato dietro ad uno schermo, ma io lo userò in modalità #headless, cioè senza monitor collegato.

L'interno hardware del dispositivo è tale e quale ad un portatile, stesso processore, stessa scheda madre, ecc ecc. Ritengo che per uso ufficio e casa è perfetto, basta collegare un monitor (o una tv), tastiera, mouse e via. Per questi usi, va più che bene (con linux), ed è poco rumoroso.

Quindi, per concludere, adesso aspetto che mi arrivi e dopo ci vorrà qualche giorno (non vi nascondo che mi fa un po' fatica) per trasferire tutto quello che avevo sul vecchio sul nuovo!

Spero di avervi fornito qualche spunto di riflessione interessante, soprattutto riguardo al riciclo dell'hardware, e voi ci avete mai fatto un pensierino?

#Linux #opensource #recicle #hardware #minipc

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

Beh, chi mi conosce saprà già che la mia risposta è decisamente si!

Non c'è giorno in cui non lo utilizzi. Molte operazioni sono molto più veloci se fatte da terminale, come ad esempio quelle che si possono effettuare su molti file in un colpo solo! Bisogna ammettere che, iniziando da zero, la strada è in salita, c'è molto da imparare, ma una volta acquisita una certa padronanza, velocizzerete moltissimo il vostro flusso di lavoro e non solo ci sono delle operazioni che si possono effettuare solo in questo modo.. Pensate, ad esempio, alla modifica solo di alcuni file in mezzo a migliaia, oppure spostare solo quelli che rispettano alcuni criteri.

Nel mio caso terminale è sinonimo di #bash, la shell più usata in ambito #linux.

Bash

Esempi

Quelli che seguono sono alcuni esempi dei miei utilizzi più comuni.

Resize massivo di immagini

find /home/yunohost.app/nextcloud/data/__groupfolders/3/prove -type f -iname "*.jpg" -exec mogrify -define preserve-timestamp=true -verbose -resize "2048x2048>" -quality 90 {} \;

Resize massivo di video

mencoder panettone.mov -vf rotate=1 -oac pcm -ovc lavc -lavcopts ffmpeg -i input.file -c:v mpeg4 -q:v 5 -tag:v DIVX -vf scale=w=720:h=576:force_original_aspect_ratio=decrease -c:a libmp3lame -q:a 3 -ac 2 -ar 44100 output.avi
find /opt/mypath/ -xtype l

Rinomina di massa file

for i in File*.txt; do j=`echo $i | sed 's/questo/quello/g'`; mv "$i" "$j"; done

Ottimizzazione file pdf

Se vogliamo ridurre le dimensioni di alcuni file pdf in un certo path, rinunciando alla qualità delle immmagini.

for file in $(ls suffisso_*.pdf); do gs -sOutputFile="${resize_file%%.*}".pdf -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dDownsampleColorImages=true -dDownsampleGrayImages=true $file; done

sincronizzazione di file e directory

Questo comando si può usare sia tra due directory dello stesso computer, sia nel caso uno dei due sia remoto, l'enorme vantaggio sta nella seconda volta in cui viene lanciato, solo le differenze tra il primo e il secondo saranno trasferite, ottimizzando, quindi, i tempi del trasferimento. (saranno riportati anche i permessi dei singoli file)

rsync -auvx /orgine/ /destinazione/

Conversioni di formato (audio, video, ma non solo)

Flac (diversi metodi)

sox track_01.wav track_01.flac

for myfile in $(ls *.wav); do flac --verify --replay-gain --best --delete-input-file $myfile; done

ffmpeg -i in.wav -af aformat=s16:44100 out.flac

Ssh

Spesso la shell (= riga di comando) va a braccetto con il software ssh, che permette di collegarsi su un sistema remoto. Grazie alla combinazione dei due, è possibile amministrare server remoti (cioé diversi dal pc che stiamo usando) o headless, cioé privi dell'interfaccia grafica (che consuma solo risorse aggiuntive), come il famoso #raspberrypi.

curl

Come non citare curl il coltellino svizzero della riga di comando, specializzando in richieste remote via http e trasferimento di file. Su questo strumento (#curl) farò un articolo apposito, perché è uno strumento molto potente, in continuo sviluppo e con numerosi casi d'uso.

Vim

E' il mio editor per eccellenza, quando uso il terminale uso lui per editare i file di testo (e non solo).

Installazione pacchetti

Tutte le varie distribuzioni linux hanno degli appositi software (rigorosamente da riga di comando) per installare i pacchetti e le loro dipendenze, alcuni esempi: – apt (Debian/Ubuntu) – dnf (Fedora, redhat) – pacman (Arclinux) – apk (Alpine)

Ansible

Oltre a bash, di cui sopra abbiamo ampiamente parlato, #ansible merita una mensione d'onore (è probabile che in futuro farò un articolo dedicato a questo strumento). Ansible è un tool (open source) di automazione, con cui effettuare il provisioning, la gestione della configurazione, il deploy delle applicazioni e moltissimi altri processi IT, in modo semplice, organizzato e automatizzato. Il suo utilizzo è libero, e in rete è possibile trovare migliaia di playbook (script), condivisi da altri utenti che permettono di automatizzare i compiti più disparati.

Software di Backup

Da sempre Linux (ma non solo) offre molti software per gestire il backup da riga di comando. Alcuni esempi – borg – duplicity – restic – rsync – rclone

Powershell

Infine una piccola digressione/informazione, anche Microsoft è stata costretta ad ammettere la superiorità della riga di comando, infatti dopo anni in cui ha puntato esclusivamente a rendere le interfacce sempre più accattivanti, da qualche anno fornisce insieme ai suoi sistemi operativi la #powershell. Con questo software, di fatto, non ha voluto rimanere indietro rispetto al competitor #linux. In pratica è un ammissione circa il fatto che alcune cose si fanno meglio e più velocemente con la riga di comando! Nel corso del tempo sono nate estenzioni per questa shell, e ormai è possibile effettuare moltissime operazioni, purtroppo ha una propria sintassi, quindi sarà necessario studiare un po'.

Per motivi spazio e tempi di lettura l'articolo finisce qui, ma ci sarebbe materiale a sufficienza per scrivere libri su libri o riempire di articoli giornalieri un blog. Spero di avervi un po' incuriosito a provare, e con che i miei appunti su qualche comando che uso vi siano di aiuto.

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

Ho scritto un plugin per home assistant! Ma ce n'era davvero bisogno? Purtroppo si, perchè avevo una particolare necessità che sotto vi spiego.

Contesto

A casa ho un NAS che tengo quasi sempre spento, e che accendono alla bisogna. Quando lo accendo, ci sono delle procedure/software installati che partono e aggiornarnano i dati. Avevo, quindi, la necessità di trovare una soluzione simile anche con #homeassistant. Ho provato vari plugin esistenti, ma nessuno faceva al caso mio. Dato che implementare questo tipo di plugin sulla carta sembrava molto semplice, ho deciso, quasi per gioco, di scriverne uno.

Lo trovate qui: https://github.com/magostinelli/hassio-addons-rsync-key

Cosa fa?

Sincronizza i backup locali con quelli remoti via ssh con scambio chiave (senza password). Al primo avvio del componente aggiuntivo viene mostrata la chiave (pubblica) creata, tale chiave dovrà essere abilitata per l'accesso sul nas al percorso in cui vogliamo depositare la copia dei nostri backup.

Il plugin ha alcune opzioni di configurazione:

schermata di configurazione

E nella schermata dei log è possibile monitorare la sua ultima esecuzione. schermata di configurazione

Come lo uso?

Ho creato un automazione che fa partire questo componente aggiuntivo 1 minuto dopo aver rilevato che il mio nas è stato acceso. Una volta che il componente avrà eseguito il suo lavoro si spengerà automaticamente, così il consumo di risorse è davvero inesistente.

#homeassistant #hass #rsync #linux #backup #nas

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

Fa parte dei software indispensabili: vi consiglio di installarlo sul vostro #raspberrypi, sul vostro #NAS o su qualsiasi dispositivo (su base #linux) che terrete sempre acceso. Il mio consiglio va in direzione del raspberry, viste i consumi e dimensioni ridotte, ma ciascuno rimane libero di fare le proprie scelte.

Pi-hole Logo

Cos'è

Pi-hole è un'applicazione **Linux ** pensata per bloccare la pubblicità e il tracciamento degli utenti su Internet a livello di rete locale. Pi-hole agisce come un DNS sinkhole[ e, opzionalmente, come un server DHCP. Fonte: https://it.wikipedia.org/wiki/Pi-hole

Come funziona

Si affianca al vostro router per la connettività Internet ed è in grado di bloccare le pubblicità e i traccianti per tutti i dispositivi di casa. Può funzionare come server #DHCP (in questo caso dovrete disattivare quello presente sul vostro router), oppure può affiancarlo (nelle impostaziooni dhcp del router dovrete indicare là indirizzo ip di pi-hole come server dns per i client). Una volta fatta questa configurazione non dovrete fare niente sui vostri dispositivi, che siano computer, telefoni o smarttv, facile no?

Pi-hole Logo

Installazione

Standalone

curl -sSL https://install.pi-hole.net | bash

Prerequisiti e sistemi supportati

Consultate la pagina ufficiale qui: https://docs.pi-hole.net/main/prerequisites/

Docker

Consiglio di usare docker-compose, di seguito una configurazione di base che potete personalizzare a voswtro piacimento version: “3”

version: "3"

services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    # For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
      - "80:80/tcp"
    environment:
      TZ: 'Europe/Rome'
      # WEBPASSWORD: 'set a secure password here or it will be random'
    # Volumes store your data between container upgrades
    volumes:
      - './etc-pihole:/etc/pihole'
      - './etc-dnsmasq.d:/etc/dnsmasq.d'
    #   https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
    cap_add:
      - NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed
    restart: unless-stopped 

Personalizzazione

Aggiunta di liste di blocco

Le liste si configurano dall'interfaccia web alla voce AdList, eccone alcune che potete aggiungere: – https://www.github.developerdan.com/hosts/lists/ads-and-tracking-extended.txthttps://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txthttps://s3.amazonaws.com/lists.disconnect.me/simple_ad.txthttps://raw.githubusercontent.com/StevenBlack/hosts/master/hostshttp://sysctl.org/cameleon/hosts

L' elenco non è certo esaustivo, esistono sicuramente altre liste, le potrete trovare con una semplice ricerca sul web.

Pi-hole Logo

Utilizzo

Una volta che avete configurato la porta dell'interfaccia web, collegatevi a quest'ultima, e gestirete tutto da li. Dal menu, in Tools –> Update Gravity potete aggiornare le liste d ei blocchi (come quelle indicate sopra). Attraverso la voce disable blocking potete intemrrompere temporaneamente (o meno) il blocco. Da query log vedrete tutte le varie richieste e se i siti richiesti sono bloccati o meno, da qui potete anche aggiungerli manualmente alla whitelist, come nel caso venga bloccato un sito che a voi serve.

Consiglio importante

Una volta installato funzionerà tutto in automatico e senza che ci sia bisogno di particolari interventi, proprio per questo vi consiglio di avere solo questa unica e semplice accortezza: Ricordatevi che lo avete installato, e nel caso abbiate qualche sito mal funzionante, tenete presente che potrebbe essere per questo che qualcosa non vi funziona!

A me personalmente è successo qualche volta, ma sono prontamente intervenuto (whitelist o disabilitazione temporanea) e ho risolto velocemente e facilmente. I malfunzionamenti dipendono sempre dal tipo e numero di liste che inserite. Alcuni esempi di malfunzionamenti che mi sono capitati: – app amazon – rai play sulla tv

DNS Consigliati

Companion app

Per la sua gestione da pc non avrete problemi, basterà usare la sua comodissima interfaccia web (la porta dipende dal tipo di installazione/configurazione che avete effettuato). Per Il vostro tablet/smartphone vi consiglio queste applicazioni: 1. Pi-hole Connect 2. Pi-hole Droid 3. DroidHole

Se volete curiosare, questo è il sito ufficiale: https://pi-hole.net/

#pihole #pubblicita #blocco #raspberrypi #linux

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA