pill

Ripristinare ownership e permessi di un path

bash
Tags: pillbash

Se avete bisogno di trasferire dei file tra 2 host come utente semplice (sudoer) ma con la necessità di trasferire anche i permessi di root e volete evitare comandi complessi e tunneling, o più un generale se avete bisogno di salvare lo stato di ownership e permessi di un tree in modo da poterli ripristinare in seguito, il metodo sotto vi permette semplicemente di creare un file TXT che contiene lo stato di tutti i file, e di poterlo quindi ripristinare.

Questo il comando per salvare lo stato della cartella corrente:

getfacl -R . > acls.txt

E questo il comando per ripristinarlo:

setfacl --restore=acls.txt

Arch linux: installare un pacchetto quando il sistema non è aggiornato da tempo

arch

Può capitare di voler installare un pacchetto sul proprio sistema non aggiornato da tempo e questo non è possibile perchè ormai il pacchetto stesso o le sue dipendenze, nelle versioni volute dal sistema attualmente installato, non si trovano più nei mirror. La soluzione corretta sarebbe fare un aggiornamento di tutto il sistema, ma questo a volte può far perdere molto più tempo del voluto.

Si può risolvere la cosa velocemente aggiungendo tra i mirror di pacman il repository con l'archivio COMPLETO dei pacchetti di arch linux.

Editiamo il file "/etc/pacman.d/mirrorlist" e aggiungiamo la riga:

Server = https://archive.archlinux.org/packages/.all

Installare Node.JS su Rasperry PI Zero

raspberry pi

In questo repository sono presenti tutte le versioni di Node.JS precompilate per armv6l, e quindi già funzionanti sul PI Zero:

https://unofficial-builds.nodejs.org/download/release/

E' sufficiente scegliere la versione voluta, e quindi fare il download e l'estrazione di /download/release/v[VER]/node-v[VER]-linux-armv6l.tar.gz

La versione estratta contiene una cartella "bin" con tutti i file eseguibili (che potete copiare dentro /usr/bin dove applicabile).

Uno script che fa tutto in automatico, impostando i link simbolici per gli eseguibili nei path corretti, lo trovate in https://github.com/sdesalas/node-pi-zero (è presente uno script per ogni versione, ma fanno sostanzialmente la stessa cosa).

Raspbian e aumentare lo swap

raspberry pi

L'os base di un Raspberry PI utilizza per il suo sistema di swap "dphys-swapfile", che sostanzialmente è un sistema veloce per gestire lo swap via file.

Per definire lo spazio da usare è sufficiente editare il file "/etc/dphys-swapfile" e cambiare l'opzione "CONF_SWAPSIZE" impostando il numero di Mb voluti.

Quindi lo swap (che si trova nel file /var/swap) verrà semplicemente ricreato con il comando:

sudo systemctl restart dphys-swapfile

KDE wallet e ssh-agent

kde

Per gestire le chiavi SSH (anche con passphrase) mediante il wallet integrato in KDE troviamo tutte le istruzioni qui:

https://wiki.archlinux.org/title/KDE_Wallet#Using_the_KDE_Wallet_to_store_ssh_key_passphrases

(Sostanzialmente si installa ksshaskpass, si configura ssh per usarlo editando il file ~/.config/environment.d/ssh_askpass.conf, si imposta l'autostart di ssh-add tramite un file ~/.config/autostart/ssh-add.desktop).

Javascript: normalizzazione stringhe con caratteri testuali non-ASCII

javascript

Al giorno d'oggi nei testi online capita a volte di trovare delle frasi scritte con dei caratteri non standard, che assomigliano alle normali lettere dell'alfabeto ma magari con degli "effetti" sopra (sono già in bold, o italico...). Sono caratteri UTF-8 estesi fuori dal set ASCII, e che a volte possono non essere ben digeriti da alcuni sistemi. Questo stesso blog (per questioni di codifica del db) non mi permette di inserirli. Per capire quali sono, metto un allegato con una frase scritta completamente con caratteri estesi.
Se avete la necessità di traslitterare la frase, in javascript, in modo da trasformare ogni carattere in quello standard mantenendo quindi la frase leggibile, potete usare il metodo dell'oggetto String .normalize("NFKC").

"stringa non standard".normalize("NFKC")

Risultato query Mysql con campi uno sotto l'altro

mysql
Tags: mysqlpill

All'interno della consolle mysql quando si fa una query il risultato viene mostrato in forma tabellare. Se invece è utile mostrare ogni cella di un record su una riga nuova si può usare "\G" in fondo alla query (al posto di ";").

select * from tabella\G

Risultato:

*************************** 1. row ***************************
field1: 44386
field2: 12345
*************************** 1. row ***************************
max(plexid): 44386


Impostare risoluzione console testuale con driver NVIDIA

nvidia

Se usate i driver NVIDIA proprietari è probabile che la console testuale della macchina vada con risoluzioni bassissime. La soluzione è modificare la configurazione di grub in /etc/default/grub in questo modo:

#GRUB_GFXMODE=auto
GRUB_GFXMODE=1920x1080x32
# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

In pratica si toglie "auto" da GRUB_GFXMODE e si mette la risoluzione volta (larghezza x altezza x bit colore), e si mette "keep" in GRUB_GFXPAYLOAD_LINUX.

P.S. Per sapere le risoluzioni supportate si deve fare il boot su grub, premere "C" e quindi usare il comando "vbeinfo".

 

Backup remoto raspberry PI

raspberry pi

Procedura che in realtà si può applicare a qualunque linux (ma ha senso dove la partizione di cui fare il backup è di pochi GB)

ssh pi@[IP] “sudo dd if=/dev/mmcblk0 bs=1M | gzip -” | dd of=./20220408_backup.gz

Per fare il restore (che non può essere fatto sulla macchina stessa, ma si deve togliere l'SD e metterla su altra macchina):

gzip -dc ./20220408_backup.gz | sudo dd of=/dev/target_disk bs=1m conv=noerror,sync

 

ssh pi@192.168.10.11 “sudo dd if=/dev/mmcblk0 bs=1M | gzip -” | dd of=~/Desktop/backup_2017-11-14.g