Pagina 1 di 2

Files omonimi in release differenti di slack e rsync

Inviato: ven 6 giu 2008, 18:45
da joe
Ciao a tutti.
Mi chiedevo se i files contenuti nelle directory corrispondenti di due release di slackware siano tutti diversi tra loro.
Mi spiego subito con un esempio:

Prendiamo un mirror che distribuisce slackware

ftp://slackware.osuosl.org/pub/slackware

e consideriamo le due directory
slackware-12.0/
e
slackware-12.1/

Ora, alcuni pacchetti hanno la versione invariata dall'una all'altra release e presentano esattamente lo stesso nome.
Per esempio:

Codice: Seleziona tutto

lftp slackware.osuosl.org:/pub/slackware> ls slackware-12.1/slackware/a/sysklogd*
-rw-r--r--    1 10001    10001       61189 Apr 09  2007 sysklogd-1.4.1-i486-10.tgz
-rw-r--r--    1 10001    10001         189 Apr 09  2007 sysklogd-1.4.1-i486-10.tgz.asc
-rw-r--r--    1 10001    10001         457 Apr 09  2007 sysklogd-1.4.1-i486-10.txt
lftp slackware.osuosl.org:/pub/slackware> ls slackware-12.0/slackware/a/sysklogd*
-rw-r--r--    1 10001    10001       61189 Apr 09  2007 sysklogd-1.4.1-i486-10.tgz
-rw-r--r--    1 10001    10001         189 Apr 09  2007 sysklogd-1.4.1-i486-10.tgz.asc
-rw-r--r--    1 10001    10001         457 Apr 09  2007 sysklogd-1.4.1-i486-10.txt
L'esempio sopra come si vede non ha solo stesso nome, ma anche stessa dimensione. Tanto da farmi venire il sospetto che i due file siano identici.
In effetti sia confrontando l'md5sum che il sha1sum, usando diff e pure cmp, pare proprio che i due file siano uguali.

Pensavo che le due releas, utilizzando un'altra versione di libgc, avessero files differenti a livello per lo meno di struttura digitale, se non anche di dimensione....e questo ritrovare lo stesso file in due "rami" differenti m'h un po' confuso.

Potreste aiutarmi a capire un attimo meglio la questione?
So che il ragionamento potrebbe avere poco senso ma avrei un problemino con rsync e diversi dubbi...però non voglio mettere troppa roba nelld stesso post, preferisco parlarne in seguito.

Re: Files omonimi in release differenti di slack e rsync

Inviato: ven 6 giu 2008, 19:08
da conraid
Pat non ricompila tutto, se ti leggi il changelog capisci cosa è cambiato dalla versione precedente.
Scelte discutibile, diversa da quella fatta qui per i pacchetti per esempio, ma è una scelta. Un programma del resto continua a funzionare ugualmente.
Alcuni programmi non sono nemmeno aggiornati (getmail, systat, etc...) e questo è meno comprensibile. O li togli o li tieni aggiornati, il tutto "nella mia umile opinione"

Re: Files omonimi in release differenti di slack e rsync

Inviato: ven 6 giu 2008, 20:11
da Mario Vanoni
conraid ha scritto:Pat non ricompila tutto, se ti leggi il changelog capisci cosa è cambiato dalla versione precedente.
Scelte discutibile, diversa da quella fatta qui per i pacchetti per esempio, ma è una scelta. Un programma del resto continua a funzionare ugualmente.
Alcuni programmi non sono nemmeno aggiornati (getmail, systat, etc...) e questo è meno comprensibile. O li togli o li tieni aggiornati, il tutto "nella mia umile opinione"
Esatto, prendi sysstat:
12.0 sysstat-7.0.0
12.1 sysstat-7.0.0

la versione attuale stabile e` sysstat-8.04

Amico (e beta tester) di Sebastien Godard da >10 anni,
ho su tre macchine sysstat-8.1.3 (development)
e funzionano da una settimana prima della pubblicazione perfettamente,
la nuova opzione di sar -d [1 0] e` molto informativa.

L'ho fatto notare a Sebastien, ma non vuole immischiarsi,
e` la distro che deve aggiornarsi a detta sua,
ho mandato una mail a PJV, ovviamente nessuna risposta.

Re: Files omonimi in release differenti di slack e rsync

Inviato: ven 6 giu 2008, 21:14
da joe
Ok, questa spiegazione è sufficiente a farmi tornare i conti.
In pratica il file nell'esempio che riportato (sysklog) non è stato ricompilato...giusto? Pertanto non vengono fuori differenze usando diff o cmp o i vari md5sum e shasum.

---
Avevo chiesto questo, per via di un idea (che con la conferma che hai dato prima pare esser azzeccata)....
In pratica (non so se ricordi la discussione sulla creazione di una iso di slackware minimale) in una directory locale avevo scaricato parte del "ramo 12.0".
Avevo usato rsync con l'opzione --file-from=LISTA.TXT in cui in LISTA.TXT erano contenuti i percorsi di tutti e soli i file cui ero interessato.

Ora vorrei fare la stessa cosa per la 12.1 Quindi mi sono costruito la lista dei files coi pacchetti di cui ho bisogno ecc ecc.
Fatto questo ho pensato: "se nelle 2 directory (12.1 e 12.0) ci sono files uguali (avendo la 12.0 in locale) allora potrei risparmiare un po' di banda usando rsync: come directory remota metto la 12.1 e come directory locale la 12.0 che ho già, così se ci sono dei doppioni di file evito di riscaricarli.
Fatto questo mi ritrovo la directory vecchia, quella della 12.0 con file in più e i vecchi file.
Avevo usato anche l'opzione --delete di rsync sperando di eliminare automaticamente i vecchi files non più presenti nella nuova dir remota (non so se mi sono spiegato...), invece non è stato così e la vecchia dire era sovrappopolata da files vecchi che non mi servivano.
Allora ho riusato rsync in locale usando come sorgente la vecchia directroy (quella della 12.0) e come destinazione una nuova directory (slackware-12.1) vuota. Ho mantenuto la lista dei files LISTA.TXT, e ho lancitao rsync:

resync -avz --delete --delete-after --file-from=LISTA.TXT slackware-12.0/ slackware-12.1/

In pratica dovrebbero essere confluiti nella 12.1 tutti i files della lista presenti in 12.0. Giusto?
E alla fine della fiera dovrei ritrovarmi nella directory slackware-12.1/ i file della lista presenti sul mirror remoto. Giusto?
In effetti per provare questo fatto ho rifatto rsync dal repo remoto della 12.1 alla dir locale sempre della 12.1: non è stato scaricato nessun file....penso che sia buon segno. Cosa ne dite? qualche conferma sulla bonta della directory locale in modo da masterizzarla correttamente mi farebbe piacere.
Anticipo che la iso l'ho già creata e fatta girare con quemu...pare tutto apposto ma il vostro parere mi farebbe piacere.

Visto questo pasticcio che ho combinato, dite che mi conviene riscaricare con rsync usando una dir locale VUOTA come destinazione? Oppure posso fidarmi della dir 12.1 già presente (tanto più per via delle conferme di qemu)???

Aspetto con fiducia una vostra risposta. ;)

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 0:02
da danix
non uso da tantissimo rsync, ma ci sto avendo parecchio a che fare in questi giorni quindi ce l'ho fresco come argomento... detto questo, perchè metti 2 opzioni per cancellare??
joe ha scritto:resync -avz --delete --delete-after --file-from=LISTA.TXT slackware-12.0/ slackware-12.1/
secondo me basta --delete-after...
infine, se hai lanciato rsync nella dir 12.1 con i files che avresti voluto scaricare e non ha scaricato o cancellato nulla secondo me va bene... se poi dici di aver provato con qemu e tutto funziona sei abbastanza tranquillo...
In ogni caso se vuoi vedere quello che farebbe rsync puoi usare l'opzione --dry-run assieme a -v che ti da un output di tutto quello che farebbe senza però fare nulla in realtà... In più se usi l'opzione --log-file=FILE tutto l'output di rsync viene "appeso" ad un FILE di log a tua scelta che ti permette di andare a ricontrollare in seguito tutto quello che è successo...

ciau

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 1:02
da joe
danix85 ha scritto: perchè metti 2 opzioni per cancellare??
joe ha scritto:resync -avz --delete --delete-after --file-from=LISTA.TXT slackware-12.0/ slackware-12.1/
secondo me basta --delete-after...
http://www.slacky.eu/wikislack/index.ph ... _Slackware

dai un'occhiata a come viene consigliato di richiamare rsync....avevo scopiazzato un po' da lì.

Ad ogni modo sono due opzioni diverse:
man rsync ha scritto: --delete delete files that don't exist on sender
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during xfer, not before
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files on receiver
--ignore-errors delete even if there are I/O errors
In pratica omettendo il delete-after, adotterebbe il default ovvero --delete-before.
Anche se non capisco bene l'opzione --delete in se:
dice: "cancella i files che non esistono sul "sender"" cosa intende di preciso?

Il discorso è questo scusate l'esempio:

dir locale: L
dir remota: R
L contiene: pippo, paperino, pluto
R contient: pippo, paperone, nonnapapera + altri-files

voglio fare in modo che rsync sincronizzi la locale con la remota in modo che la locale contenga

pippo
paperone
nonnapapera

con l'accortezza (ma questo penso sia automatico) che:
se il "pippo" inizialmente in L fosse uguale a quello in R allora non venga riscaricato
altrimenti se indipendentemente dall'omonimia e dimensioni, fosse differente, allora venga riscaricato e sovrascritto.

Con l'opzione --files-from=LISTA ho messo in LISTA pippo, paperone, nonnapapera.
Pensavo che lopzione delete mi cancellasse papereino e pluto, invece sono ancora presenti nella locale dopo il rsync.....
Avete idee? qualche riga di spiegazione sarebbe preziosa.

infine, se hai lanciato rsync nella dir 12.1 con i files che avresti voluto scaricare e non ha scaricato o cancellato nulla secondo me va bene... se poi dici di aver provato con qemu e tutto funziona sei abbastanza tranquillo...
Ma, penso anch'io anche alla luce dei controlli che ho fatto con diff md5sume via dicendo...a quanto pare quei file sono identici a quelli remoti e questo significa che la directory locale dovrebbe essere corretta e la iso creata ok...ma speravo in qualche conferma ulteriore, per questo ho postato.
Grazie mille anche per gli altri consigli.

Saluti. :)

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 1:20
da conraid
joe ha scritto:
danix85 ha scritto: perchè metti 2 opzioni per cancellare??
joe ha scritto:resync -avz --delete --delete-after --file-from=LISTA.TXT slackware-12.0/ slackware-12.1/
secondo me basta --delete-after...
[...]
In pratica omettendo il delete-after, adotterebbe il default ovvero --delete-before.
Lui ti ha detto il contrario, cioè di togliere --delete e non --delete-after.
Comunque puoi lasciarli entrambi, male non fa.
joe ha scritto: Anche se non capisco bene l'opzione --delete in se:
dice: "cancella i files che non esistono sul "sender"" cosa intende di preciso?
Se tu hai dei files per un progetto (quindi nella directory origine, sender) e da quel progetto togli 5 file e ne aggiungi altri 6, quella funzione fa sì che oltre a scaricare i nuovi 6 files ti cancella i 5 anche nella directory di destinazione.
joe ha scritto: Con l'opzione --files-from=LISTA ho messo in LISTA pippo, paperone, nonnapapera.
Pensavo che lopzione delete mi cancellasse papereino e pluto, invece sono ancora presenti nella locale dopo il rsync.....
Avete idee? qualche riga di spiegazione sarebbe preziosa.
Quel che vuoi lui te lo fa in automatico. Cioè cancellare cosa non c'è più.
Ma... c'è un ma bello grosso.

Se leggi il man vedi che con --files-from, include o exclude sono esclusi dal delete i file non presenti nella lista, quindi dovresti usare anche --delete-excluded

Files that are excluded from transfer are also excluded from being deleted unless you use
the --delete-excluded option or mark the rules as only matching on the sending side

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 12:39
da joe
conraid ha scritto:
Quel che vuoi lui te lo fa in automatico. Cioè cancellare cosa non c'è più.
Ma... c'è un ma bello grosso.

Se leggi il man vedi che con --files-from, include o exclude sono esclusi dal delete i file non presenti nella lista, quindi dovresti usare anche --delete-excluded

Files that are excluded from transfer are also excluded from being deleted unless you use
the --delete-excluded option or mark the rules as only matching on the sending side
Avevo pensato anch'io a questo fatto però provando non ho ottenuto il risultato sperato....
Ti/Vi propongo l'esempio seguente:
- abbiamo due dir "a" e "c".
- vogliamo sincronizzare alcuni files di "a" verso "c" in modo che c contenga solo quei files specificati nella solita lista.
- a contiene ovviamente i files che ci interessano + altri
- c contiene (per esempio) i file che ci interessano (ma magari sono da aggiornare) + altra roba che vorremmo fosse eliminata da rsync perchè non compresa nella lista.
Riporto l'esempio pratico di quanto ottengo:

Codice: Seleziona tutto

[xxx@xxx prove]$ ls a c
a:
altri_files  paperino  paperone  pippo

c:
paperino  paperone  pippo  pluto  topolino
[xxx@xxx prove]$ cat lista
paperino
paperone
pippo
[xxx@xxx prove]$ rsync -avz --files-from=lista --delete-excluded a/ c/
building file list ... done

sent 104 bytes  received 20 bytes  248.00 bytes/sec
total size is 0  speedup is 0.00
[xxx@xxx prove]$ ls c
paperino  paperone  pippo  pluto  topolino
[xxx@xxx prove]$
Come si vede, nonostante l'utilizzo dell'opzione --delete-excluded i file in eccesso nella destinazione rispetto a quelli della lista non vengono comunque eliminati....
Che dite? Non ho ancora capito il meccanismo....

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 13:01
da danix
forse ti sei dimenticato --delete... ma a questo punto non ne sono troppo sicuro...

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 13:26
da joe
danix85 ha scritto:forse ti sei dimenticato --delete... ma a questo punto non ne sono troppo sicuro...
No, avevi ragione tu prima, anche con il --delete non funge, ommeglio non fa quello che m'aspettavo.

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 13:55
da danix
quindi hai risolto?? se si posta che sono curioso di vedere come hai fatto...


bye

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 14:01
da conraid
joe ha scritto:

Codice: Seleziona tutto

$ cat lista
paperino
paperone
pippo
Ma lista è davvero così?

Perché se fai --exclude-file o --include-file ok, altrimenti devi mettere qualcosa come

+paperino
+papero
-pippo

Leggi la sezione FILTER RULES del man

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 18:01
da joe
Sì la lista l'ho costruita proprio così e a parte tutto funziona, nel senso che i file vengono trasferiti ecc, ma non funziona precisamente come vorrei io.
Mi sa che il problema non è quella lista....ho letto un po' il man, ma nonparla di quei filtri relativamente al'opzione --files-from.
Comunque ho fatto la prova pratica che vi riporto di seguito.

Codice: Seleziona tutto

[xxx@xxx prove]$ ls a c
a:
altri_files  paperino  paperone  pippo

c:
paperino  paperone  pippo  pluto  topolino
[xxx@xxx prove]$ cat lista
+paperino
+paperone
+pippo
[xxx@xxx prove]$ rsync -avz --files-from=lista --delete --delete-excluded a/ c/
building file list ... rsync: link_stat "/home/xxx/downloads/prove/a/+paperino" failed: No such file or directory (2)
rsync: link_stat "/home/xxx/downloads/prove/a/+paperone" failed: No such file or directory (2)
rsync: link_stat "/home/xxx/downloads/prove/a/+pippo" failed: No such file or directory (2)
done

sent 29 bytes  received 20 bytes  98.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files could not be transferred (code 23) at main.c(892) [sender=2.6.8]
[xxx@xxx prove]$
L'errore che dà mi fa pensare che quella sintassi (+, -, ecc) per filtrare il file non è compatibile con l'opzione --files-from=FILE che a questo punto, penso voglia proprio il percorso dei singoli files o directories.
Quindi nulla di fatto:
il --delete-excluded non fa quello che vorrei a quanto pare. :|

Mi viene anche il dubbio che magari non ci siamo capiti bene....avete chiaro l'obiettivo che ho in mente?
Cioè il risultato che vorrei raggiungere dovrebbe essere:

Codice: Seleziona tutto

[xxx@xxx prove]$ ls c
paperino  paperone  pippo
Ovviamente ho scritto quest'ltimo qui sul form, non ricopiato da shell è un esempio del risultato che spererei di ottenere....
Non riesco proprio a capire...eppure è una operazione tutto sommato semplice:
collegati al sender
cerca sul sender i file della lista e confrontali con quelli locali omonimi
aggiorna sovrascrivendoli gli omonimi
cancella tutto il resto dalla dir locale.

Non riesco neanche a trovare esempi simili in rete...
Mi pare tutto sommato un buon metodo per tirare giù precisamente i file desiderati dal mirror slackware voluto, ma se funziona solo con la dir di destinazione vuota, allora non è il massimo della vita. :?

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 18:10
da conraid
Prova con

+ /paperino
+ /paperone
+ /pippo
- *

Re: Files omonimi in release differenti di slack e rsync

Inviato: sab 7 giu 2008, 18:34
da joe
conraid ha scritto:Prova con

+ /paperino
+ /paperone
+ /pippo
- *
Avevo già provato anche con lo spazio, ma non con l'asterisco in fondo...ad ogni modo riprovando da sempre errore:

Codice: Seleziona tutto

$ cat lista
+ paperino
+ paperone
+ pippo
- *
$ rsync -avz --files-from=lista --delete --delete-excluded a/ c/
building file list ... rsync: link_stat "/home/xxx/downloads/prove/a/+ paperino" failed: No such file or directory (2)
rsync: link_stat "/home/xxx/downloads/prove/a/+ paperone" failed: No such file or directory (2)
rsync: link_stat "/home/xxx/downloads/prove/a/+ pippo" failed: No such file or directory (2)
rsync: link_stat "/home/xxx/downloads/prove/a/- *" failed: No such file or directory (2)
done

sent 29 bytes  received 20 bytes  98.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files could not be transferred (code 23) at main.c(892) [sender=2.6.8]