Michele Liberi software
versione 1.04, giugno 2026
|
|
Michele Liberi
mail: mliberi@gmail.com
cell: +393485211456
telegram: @MicheleLiberi
|
liberix
- Presentazione
- Librerie
- Servizi
- Comandi
- rxc, esecuzione remota di comandi
- woha, web oriented hyerarchical database
- n, punto unico di controllo per N servers
- ck, controlli sui sistemi
- comm5, sincronizzazione di files
- comm7, sincronizzazione di files e metadati
- gcron, schedulatore globale
- logaway, gestione files di log
- nbru, gestione centralizzata dei backup
- kcc, il compilatore di shell scripts
- upload, accesso a web server
- www, HTTP client
- ftime, stampa informazioni sui files
- cpfl, archiviatore di files
- metafl, archiviatore di metadati
- mvfl, rinomina una lista di files
- lnfl, collegamento di una lista di files
- rmfl, cancellazione di una lista di files
- rxcp, copia di files
- afifo, gestione asincrona code fifo
- mq, interazione con server IBM MQM locale
- mqc, interazione con server IBM MQM remoto
- lra, interazione con il servizio lrm
- cofc, interazione con il servizio cofs
- pst, gerarchia dei processi
- dut, spazio utilizzato dalle directory
- ecut, estrazione dati da un file di testo
- ecomm, confronto righe di due files
- ejoin, unisce le righe di due files
- etee, duplicazione del flusso di input
- etr, converte o cancella caratteri
- ecat, concatenazione di file
- esort, ordinamento lessicografico di un testo
- sortbyll, ordina un testo in base alla lunghezza delle righe
- opmsr, ricerca e sostituzione di stringhe
- match, ricerca di stringhe
- cargs, verifica argomenti
- cenv, print environment variables
- yargs, esecuzione multipla di un comando
- tmout, lancia un comando con un tempo limite
- unchain, cancella catena di link simbolici
- rmlines, rimuove righe da un file
- yar, archiviatore minimale alternativo
- rows, trova righe in comune
- 3comm, comparazione file di testo
- now, cronometro per shell script
- systime, seconds since epoch
- bpwd, cambio della password non interattivo
- ckuserpw, controllo o cambio password
- 1moregrp, lancia un comando previa aggiunta di un gruppo
- memberof, incrocio utenti e gruppi
- lscron, lista di tutti i job lanciati da cron
- fdump, visualizza un file in esadecimale
- pol, calcolo di espressioni
- total, somma algebrica
- pths, ricerca di files nel PATH
- mynames, lista nomi di rete
- hostip, risoluzione nome di rete
- ckhosts, verifica file hosts
- des, data encryption standard
- tea, tiny encryption algorithm
- kc, un cifratore veloce
- keygen, genera una chiave casuale
- crypt, codifica una stringa
- cryptest, verifica validità password
- xor, cifratore binario
- hff, codifica decodifica di Huffmann
- sltn, interazione con un host remoto
- NCgrep, selezione di righe basata su regole
- accessx, accessibilità di files e directories
- rtest, accessibilità per utente reale
- u2d, converte un file da UNIX a DOS
- d2u, converte un file da DOS a UNIX
- ascii, tabella di codifica ASCII
- ebcdic, tabella di codifica EBCDIC
- asc2ebc, conversione da ASCII a EBCDIC
- ebc2asc, conversione da EBCDIC a ASCII
- id3, manipolazione metadati brani MP3
- woha2bash, converte un oggetto woha in una script bash
- img2html, converte immagini in tag HTML
- cgi, interazione con webserver
- cgisu, switch user per utenti CGI
- alert, invio di avvisi su più canali
- lnsm, invio e-mail
- logwriter, scrittura controllata file di log
- lspwdage, resoconto delle età delle password
- mon, lancia ciclicamente un comando
- eddy, selezione con editor di files da rinominare o cancellare
- mutuo, tabella ammortamento a rata costante
- sms, invio messaggi SMS
- aixb, backup completo del sistema AIX
- socktee, monitoraggio traffico su socket
- rowcmp, confronto di file di testo
- comb, combinazioni di N su K elementi
- pty, esecuzione batch di un programma interattivo
- openfds, lista dei descrittori in uso
- msleep, attende N millisecondi
- myid, estensione del comando id
- c7comp, comparatore di filetree
- str, estrazione di una parte di un bytestream
- X client
- Applicazioni web
- Siti web
- Applicazioni Android
- Programmi DOS
- Programmi Windows
- Installazione
- Licenza d'uso
Il comando comm7 è uno strumento potente e sofisticato per la sincronizzazione di file, directories e link simbolici.
L'analisi ed eventuale sincronizzazione avviene tra N sistemi, in modalità master/slave oppure in modalità paritetica.
L'insieme dei pathnames da analizzare viene determinato, in maniera molto flessibile con il parametro finder che contiene un comando di shell che genera una lista di pathnames, ad esempio "find .".
Per ogni coppia di sistemi A e B da analizzare, comm7 determina gli elementi:
- 1o solo in A
- 2o solo in B
- 3c comuni
- 3i identici
- 3d diversi
- 3n più nuovi in A
- 3o più nuovi in B

Ai fini dell'analisi due file sono considerati identici se hanno la stessa data di ultima modifica (mtime) e la stessa dimensione.
Impostando il parametro crc=1 è possibile determinare se due file sono identici in base al calcolo di un checksum; comm7 analizza parimenti anche i metadati associati ai pathname, quindi due file vengono identificati come non identici anche se è diverso il proprietario, il gruppo, i permessi di accesso.
Il parametro fat=1 permette di confrontare correttamente le date di ultima modifica quando i file risiedono su filesystem di tipo FAT.
Su tali sistemi infatti la data di ultima modifica viene salvata scartando l'ultimo bit, quello meno significativo, quindi due timestamp sono considerati uguali anche se differiscono di un secondo.
Inoltre in questa modalità vengono ignorati i metadati (proprietario, gruppo, permessi di accesso, ACL) ed il confronto dei nomi dei file viene fatta senza distinzione tra maiuscole e minuscole.
Una volta analizzata la situazione ed identificati gli insiemi è possibile attivare delle azioni.
Ad esempio con l'opzione -master:
- gli elementi che sono solo in A vengono copiati in B
- gli elementi che sono solo in B vengono cancellati
- gli elementi diversi vengono copiati da A a B
Questo processo modifica solo il sistema B, al termine del processo B conterrà esattamente gli stessi elementi di A.
Con l'opzione -mirror:
- gli elementi che sono solo in A vengono copiati in B
- gli elementi che sono solo in B vengono copiati in A
- gli elementi diversi vengono copiati dal più nuovo al più vecchio
Come prima al termine del processo A e B conterranno gli stessi elementi, ma in questo caso entrambi i sistemi vengono potenzialmente modificati.
L'analisi e successiva eventuale sincronizzazione avvengono sia per i dati, basandosi sulla dimensione e data di ultima modifica del file, sia per i metadati (utente, gruppo, permessi di accesso, ACL, etc...).
parametri
| nome | tipo | significato | esempio
|
|---|
| H | array
| nome o indirizzo IP dei sistemi coinvolti
| H=(mliberi ml tcm)
|
| D | array
| directory di riferimento, in essa verrà eseguito il comando finder
| D=(/woha /bck/woha)
|
| pre | array
| comando da lanciare per verificare se ci sono le condizioni per effettuare il check, in caso di return code diverso da zero l'intero processo di analisi e sincronizzazione si interrompe
| pre[0]='test -f semaforo.txt'
|
| finder | string
| comando da lanciare per determinare gli elementi presenti
| ls -f |grep ^00
|
| uxgref | oneof
| determina come vengono gestiti il proprietario ed il gruppo dei file che vengono copiati:
- byname: preserva il nome
- byid: preserva identificativo numerico
- none: non preserva alcunché, utilizza id dell'utente corrente
| uxgref=byname
|
| mode | oneof
| determina la modalità di esecuzione
- check: analizza, ma non compie azioni
- master: sincronizza da H[0] a tutti gli altri
- mirror: sincronizza dal più giovane al più vecchio
- *: specifica quali azioni elementari compiere:
- cp12: copia 1o A ==> B
- cp21: copia 2o B ==> A
- rm1: cancella 1o da A
- rm2: cancella 2o da B
- put: copia 3d A ==> B
- get: copia 3d B ==> A
- upd12: copia 3n A ==> B
- upd21: copia 3o B ==> A
| mode='*' cp12=1 cp21=1 rm1=0 rm2=0 put=0 get=0 upd12=0 upd21=0
|
| crc | boolean
| per capire se due elementi sono uguali o diversi si utilizza la dimensione e la data di ultima modifica, impostando crc=1 si forza il calcolo di un checksum come ulteriore sicurezza
| crc=0
|
| fat | boolean
| quando i file risiedono in tutto o in parte su filesystem di tipo FAT è necessario impostare questo parametro in modo che:
- il confronto della data avvenga con tolleranza di un secondo di differenza
- i metadati vengano ignorati
- il confronto dei nomi avvenga in senza distinzione tra maiuscole e minuscole
| fat=0
|
| comp | boolean
| specifica se procedere o no con il confronto dei file comuni (3c) per determinare i sottoinsiemi (3i, 3d, 3n, 3o)
| comp=1
|
| verbose | boolean
| specifica se visualizzare in fase di analisi il dettaglio degli elementi trovati in ogni insieme
| verbose=1
|
Per ulteriori informazioni sulla sintassi di attivazione e sulle opzioni disponibili lanciare il comando con l'opzione -h.
(c) M. Liberi, last updated: 2026-06-15