Michele Agostinelli Blog

linux

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 massimo 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 massimo 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