[Risolto] Creazione script per invio informazioni al forum

Bash, Perl, Python, Ruby, ...
Avatar utente
marcomg
Administrator
Administrator
Messaggi: 8061
Iscritto il: 22/08/2011, 18:54

Re: [Risolto] Creazione script per invio informazioni al forum

Messaggio da marcomg »

s3v ha scritto: 28/03/2021, 17:36 Risulterebbe un output chilometrico e scarsamente leggibile...
Sarà la mia scarsa abitudine a leggere questo log mi disperdo sempre 😅
Una soluzione potrebbe essere uscire output formattato con HTML in modo da avere un mini menù ed inoltre output lunghi potrebbero essere "compressi" con uno spoiler.
HAL 9000 ha scritto: 28/03/2021, 18:09 cercavo di raccogliere più informazioni possibili, ma effettivamente dpkg è troppo verboso e comunque informeremo sulla necessità di installare aptitude per un log più dettagliato.
Se ben navigabile more is more and less is less. Se non fosse troppo lento a volte mi è servito output di più gruppi, qualche volta mi è successo di dover chiedere ad un utente di eseguire 2 volte lo script con 2 comandi differenti.
~ Marco
Avatar utente
HAL 9000
wiki member
wiki member
Messaggi: 1595
Iscritto il: 10/08/2009, 10:01

Re: [Risolto] Creazione script per invio informazioni al forum

Messaggio da HAL 9000 »

Si può senz'altro fare. Un'altra soluzione, forse ancora più semplice, sarebbe di avere più di un log, così da rendere disponibili le informazioni in file separati, che tanto poi verrebbero compressi in un unico archivio.
Basterebbe rimuovere la scelta di comprimere o meno il file, e in caso sostituirla con quella se conservare o meno il file in forma non compressa (se si vuole agevolare il monitoraggio delle informazioni raccolte) oppure semplicemente fornire la scelta di visualizzare le informazioni raccolte.

Riguardo le informazioni raccolte, esiste nello script una sezione generale che si occupa di raccogliere informazioni comuni a prescindere dalla scelta dell'utente. Si può pensare di estenderla spostando lì alcuni comandi, oppure far sì che un'azione includa sempre anche un'altra, se per esempio i problemi di due date aree sono spesso correlati.
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 12 "bookworm" (PC): installazione, aggiornamento.
Avatar utente
s3v
Hero Member
Hero Member
Messaggi: 5964
Iscritto il: 31/12/2008, 11:54

Re: [Risolto] Creazione script per invio informazioni al forum

Messaggio da s3v »

HAL 9000 ha scritto: 28/03/2021, 18:09 Per non rimuovere completamente dpkg, si potrebbero rimuovere tutti i pacchetti installati/disinstallati correttamente:

Codice: Seleziona tutto

dpkg -l | grep -Ev '^(ii|un|rc)'
Questo comando è utile, magari si elencano solo quelli che *non* sono "ii" così si dà anche la possibilità di visualizzare la roba non disinstallata correttamente in modo da liberare spazio.
HAL 9000 ha scritto: 28/03/2021, 18:09 Preferirei comunque rimuovere column, se non altro per evitare possibili problemi più avanti, e cambiare leggermente il formato dell'output (per quelli con una sola versione, la versione ha la stessa larghezza e così almeno il nome del pacchetto resterebbe sempre allineato):

Codice: Seleziona tutto

aptitude --disable-columns -F '%t: %p %v' search ...
"--disable-columns" forse non serve a niente con le redirezioni? Se è così, si può anche togliere.
Non ho capito la frase "la versione ha la stessa larghezza".
Attualmente l'output senza "--disable-columns" e senza "column" è uguale a quello che si avrebbe con entrambi, tranne per il fatto che la prima colonna è più larga e il risultato finale è meno compatto e più brutto da vedere (ma sono gusti). aptitude in modo predefinito allinea l'output in colonne anche se non proprio in modo perfetto.
HAL 9000 ha scritto: 29/03/2021, 16:47 Si può senz'altro fare. Un'altra soluzione, forse ancora più semplice, sarebbe di avere più di un log, così da rendere disponibili le informazioni in file separati, che tanto poi verrebbero compressi in un unico archivio.
Questa è una buona idea.

Vorrei però capire in concreto l'eventuale problema. Cioè, cosa ha portato a chiedere due log diversi?
Visto che tutti i problemi sono intercorrelati, è abbastanza inutile risolverne una coppia per un singolo caso e tralasciando tutte le varianti e tutte le altre possibili permutazioni. Sarebbe meglio capire il motivo che c'è alla base e affrontare la situazione nel modo più generico possibile.
Avatar utente
marcomg
Administrator
Administrator
Messaggi: 8061
Iscritto il: 22/08/2011, 18:54

Re: [Risolto] Creazione script per invio informazioni al forum

Messaggio da marcomg »

HAL 9000 ha scritto: 29/03/2021, 16:47 Si può pensare di estenderla spostando lì alcuni comandi, oppure far sì che un'azione includa sempre anche un'altra, se per esempio i problemi di due date aree sono spesso correlati.
A questo punto si può semplicemente creare una azione "tutto" e nel caso serva più di una info si chiede di eseguirlo con "tutto".
s3v ha scritto: 29/03/2021, 17:33 Vorrei però capire in concreto l'eventuale problema. Cioè, cosa ha portato a chiedere due log diversi?
Ora non mi ricordo le discussioni in cui è successo (sono vecchiotte). È comunque capitato un paio di volte sia ad Aki che a me. In particolare a volte è capitato di dover avere info sul boot e sul mount. Anche Apt è molto gettonata insieme ad altre cose. Poi tutto dipende dalla scaltrezza dell'utente in questione.
s3v ha scritto: 29/03/2021, 17:33 il motivo che c'è alla base e affrontare la situazione nel modo più generico possibile.
Per me si può affrontare in 2 modi e forse uno è più facile (il 2°) si permette di scegliere più task oppure si pone una opzione in cui si permette di scegliere tutti i task in uno.
~ Marco
Avatar utente
HAL 9000
wiki member
wiki member
Messaggi: 1595
Iscritto il: 10/08/2009, 10:01

Re: [Risolto] Creazione script per invio informazioni al forum

Messaggio da HAL 9000 »

s3v ha scritto: 29/03/2021, 17:33Questo comando è utile, magari si elencano solo quelli che *non* sono "ii" così si dà anche la possibilità di visualizzare la roba non disinstallata correttamente in modo da liberare spazio.
Ossia mostrare anche "rc"? Il fatto è che dovrebbe essere il default per i pacchetti rimossi, se non erro (io però ho sempre usato purge e non potrei giurarlo).

Inoltre mi sono accorto che specificare "un" è superfluo, in quanto quei pacchetti sono già saltati di default; e soprattutto che manca uno spazio finale dopo la parentesi chiusa, perché c'è un terzo campo/carattere (eventuale) di errore:

Codice: Seleziona tutto

dpkg -l | grep -Ev '^(ii|rc) '
Non ho capito la frase "la versione ha la stessa larghezza".
All'interno del formato di output per aptitude avevo spostato la versione di Debian (%t) all'inizio, in modo che i primi due parametri (%t e %p) siano sempre allineati anche senza spaziature aggiuntive (salvo che in sistemi con più di una versione di Debian). Avrei dovuto parlare di release/rilascio, per essere più chiaro.
Attualmente l'output senza "--disable-columns" e senza "column" è uguale a quello che si avrebbe con entrambi, tranne per il fatto che la prima colonna è più larga e il risultato finale è meno compatto e più brutto da vedere (ma sono gusti). aptitude in modo predefinito allinea l'output in colonne anche se non proprio in modo perfetto.
A me non funziona in modalità non interattiva, ossia per esempio quando l'output di aptitude è rediretto: al posto delle colonne vedo uno spazio singolo tra ciascun argomento e risulta tutto molto poco leggibile.
E pensavo che column fosse stato usato per questo. Se però è solo un mio problema, basta rimuovere entrambi "--disable-columns" e "column".

Per il resto non ho preferenze.
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 12 "bookworm" (PC): installazione, aggiornamento.
Avatar utente
s3v
Hero Member
Hero Member
Messaggi: 5964
Iscritto il: 31/12/2008, 11:54

Re: [Risolto] Creazione script per invio informazioni al forum

Messaggio da s3v »

Per ora ho fatto inserito alcune modifiche.
Messo soltanto i pacchetti con stato diverso da "ii", gli "rc" sono quelli rimossi con "apt remove" e non con "apt purge". Non è un errore avere "rc" poiché viene rimosso il pacchetto ma non eventuali file di configurazione (è utile per non rifarsi tutta la configurazione da capo in caso il pacchetto venga reinstallato).

@HAL9000
In effetti l'impaginazione a colonne di aptitude senza "column" è corretta sul terminale ma viene persa sul file, non saprei a cosa sia dovuto, forse a printf? O, come hai scritto, al redirect. Non ho indagato.
Non ho messo "apt-mark showmanual" perché mi riporta una lista lunghissima...
Avatar utente
marcomg
Administrator
Administrator
Messaggi: 8061
Iscritto il: 22/08/2011, 18:54

Re: [Risolto] Creazione script per invio informazioni al forum

Messaggio da marcomg »

@BUG
Secondo me è nella funzione _hide o come viene chiamata la funzione _hide. Vedere il file viewtopic.php?p=225464#p225464
Una anticipazione del file

Codice: Seleziona tutto

Tipo di pnomeutenteoblema: nomeutenteete
Log cnomeutenteeato il: 12 ottobnomeutentee 2021 alle 14.56
Ultimo aggionomeutentenamento del sistema: 11 ottobnomeutentee 2021
Venomeutentesione scnomeutenteipt: 1.0.72
Sospetto che nel caso il nome utente sia "r".
~ Marco
Avatar utente
HAL 9000
wiki member
wiki member
Messaggi: 1595
Iscritto il: 10/08/2009, 10:01

Re: [Risolto] Creazione script per invio informazioni al forum

Messaggio da HAL 9000 »

Sì, è nella funzione _hide. Si potrebbero effettuare le sostituzioni per i nomi utente/host solo per parole intere, o per quelle separate dal resto di ciascuna riga del log da qualche carattere speciale.
Devo riguardami le espressioni regolari, e vedere se trovo le casistiche che la funzione _hide era stata creata per nascondere dal log, se ce n'erano di particolari.

Fortunatamente questo bug riguarda solo utenti il cui nome, o il cui hostname, è parte di altre parole.

Questo bug comunque non si potrà eliminare del tutto, se non eliminando tale funzionalità o permettendo all'utente di evitarne l'esecuzione, se per esempio qualche utente scegliesse come nome (suo o dell'host) una parola che appare comunemente nei log.
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 12 "bookworm" (PC): installazione, aggiornamento.
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1331
Iscritto il: 03/09/2018, 7:53

Re: [Risolto] Creazione script per invio informazioni al forum

Messaggio da azioga »

HAL 9000 ha scritto: 16/10/2021, 8:45 Sì, è nella funzione _hide. Si potrebbero effettuare le sostituzioni per i nomi utente/host solo per parole intere, o per quelle separate dal resto di ciascuna riga del log da qualche carattere speciale.
una cosa così potrebbe andare?

Codice: Seleziona tutto

$ echo "r r #r ari ar error r" | sed 's/\br\b/nomeutente/ g';
nomeutente nomeutente #nomeutente ari ar error nomeutente
Avatar utente
HAL 9000
wiki member
wiki member
Messaggi: 1595
Iscritto il: 10/08/2009, 10:01

Re: [Risolto] Creazione script per invio informazioni al forum

Messaggio da HAL 9000 »

Sì, dovrebbe mettere una pezza al problema, restringendo ulteriormente il verificarsi del bug.

E non volendo complicare inutilmente lo script, penso che possa bastare, finché qualcuno non userà come nome utente/host una parola intera già utilizzata comunemente nei log.

Procedo quindi con l'aggiornamento. ;)
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 12 "bookworm" (PC): installazione, aggiornamento.
Rispondi