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 c7comp è un componente fondamentale del programma comm7.
Scritto in linguaggio C per motivi di efficienza, c7comp permette di confrontare due filetree.
c7comp riceve in input due files di testo (che possono essere generati dal comando ftime) e che rappresentano le due strutture da confrontare.
Ogni riga di ognuno dei due file contiene i seguenti campi:
- filetype: f=file d=directory l=symlink
- last modification time: numero di secondi dal 1/1/1970 00:00.00
- last status change time: numero di secondi dal 1/1/1970 00:00.00
- file size or file CRC
- owner username or userid
- owner groupname or groupid
- ACL checksum
- POSIX permissions
- pathname
I due file di input devono contenere lo stesso numero di righe, ed il nome del file deve essere identico tra righe corrispondenti.
Una eventuale mancanza di corrispondenza del campo pathname comporta un'immediata chiusura del programma.
Dall'esame comparativo dei due file di input c7comp (diciamo A e B), genera sette file di output:
- lista degli oggetti identici (dati e metadati)
- lista degli oggetti diversi
- lista degli oggetti diversi più nuovi in A
- lista degli oggetti diversi più nuovi in B
- lista degli oggetti con diversi metadati
- lista degli oggetti con diversi metadati più nuovi in A
- lista degli oggetti con diversi metadati più nuovi in B
La distinzione tra dati e metadati è importante perché la sincronizzazione dei metadati è molto più veloce ed efficiente della sincronizzazione dei dati.
Il confronto dei due oggetti corrispondenti (stesso pathname) segue logiche diverse in base al tipo di oggetto, e in base alle opzioni impostate:
- filetype diversi
- Come primo criterio di confronto c7comp usa il filetype, se non coincide gli oggetti sono considerati diversi.
- file regolari
- Due file regolari sono considerati:
- identici: tutti i valori corrispondono
- diversi: la data di ultima modifica è diversa, oppure è diversa la dimensione del file
- metadati diversi: c'è una differenza in uno degli altri valori
Ci sono importanti eccezioni alla regola:
- il controllo sulle ACL può essere disabilitato (opzione -a), in quanto ha poco senso confrontare le ACL quando i due file provengono da sistemi operativi diversi (es. AIX e Linux)
- il controllo sulla dimensione del file può essere sostituito dal controllo sul CRC (opzione -c); si tratta di una modalità molto più precisa, ma anche molto più lenta ed impattante a livello computazionale in quanto comporta la lettura dei dati del file
- il controllo su tutti i metadati può essere disabilitato (opzione -f), modalità utile quando almeno uno dei due filetree proviene da un filesystem di tipo FAT (che per sua natura non gestisce i metadati); in questa modalità anche il confronto sul last modification time avviene tenendo conto di come questo dato viene gestito nei filesystem di tipo FAT
- directory
- Per le directory il confronto avviene solo a livello di metadati, con le stesse eccezioni di cui sopra.
Per il confronto dei timestamp si usa il last status change time e non il last modification time.
- link simbolici
- Per i link simbolici i metadati non sono importanti e non possono mai differire. Due link si considerano identici se puntano allo stesso oggetto.
Per il confronto dei timestamp si usa il last status change time e non il last modification time.
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-16