Files omonimi in release differenti di slack e rsync

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Files omonimi in release differenti di slack e rsync

Messaggio da conraid »

+ /paperino
+ /paperone
+ /pippo
- *

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Files omonimi in release differenti di slack e rsync

Messaggio da joe »

Codice: Seleziona tutto

[xxx@xxx prove]$ cat lista
+ /paperino
+ /paperone
+ /pippo
- *
[xxx@xxx prove]$ ls a c
a:
altri_files
paperino
paperone
pippo

c:
paperino
paperone
pippo
pluto
topolino
[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)
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]
[xxx@xxx prove]$ ls c
paperino
paperone
pippo
pluto
topolino
Nisba.... :(

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Files omonimi in release differenti di slack e rsync

Messaggio da conraid »

Codice: Seleziona tutto

$ ls a b
a:
labrador  minnie  paperino  paperone pippo  pluto

b:
costello  paperino  pippo  terrier


$ cat lista
paperino
paperone
pippo

$ cat lista2
*

$ rsync -avz --include-from=lista --exclude-from=lista2 --delete --delete-excluded a/ b/

$ ls a b
a:
labrador  minnie  paperino  paperone  pippo  pluto

b:
paperino  paperone  pippo
Così ti funziona, ed è come faccio sempre io, forse --files-from funziona diversamente. Ma devi solamente creare due file invece che uno

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Files omonimi in release differenti di slack e rsync

Messaggio da joe »

Eh eh, quando si dice..."a work around".... ;)
Se funge dovrebbe essere ok...la lista contenente l'asterisco dovrebbe essere superflua, googolandoho visto che alcuni utilizzano --exclude-from="*".
Sarà giusto?
A dire il vero tempo fa quando avevo usato per la prima volta rsync, avevo anche provato delle opzioni simili (non ricordo quali di preciso) a --exclude-qualcosa o include-qualcos'altro. Ma poi avevo ripiegato su --file-from.
Non ricordo il motivo preciso...staremo a vedere...
Il rsync lo richiamo in uno script ed in particolare la LISTA la creo con sed a partire dal FILELIST.TXT presente nella directory "radice" del ramo "slackware-X" che ho intenzione di scaricare. La lista alla fine è una cosa del tipo:

Codice: Seleziona tutto

ANNOUNCE.12_1
BOOTING.TXT
CHANGES_AND_HINTS.TXT
CHECKSUMS.md5
CHECKSUMS.md5.asc
COPYING
COPYING3
COPYRIGHT.TXT
CRYPTO_NOTICE.TXT
ChangeLog.txt
FAQ.TXT
FILELIST.TXT
GPG-KEY
PACKAGES.TXT
README.TXT
README.initrd
README_CRYPT.TXT
README_LVM.TXT
README_RAID.TXT
RELEASE_NOTES
SPEAKUP_DOCS.TXT
SPEAK_INSTALL.TXT
Slackware-HOWTO
UPGRADE.TXT
extra/CHECKSUMS.md5
extra/CHECKSUMS.md5.asc
extra/FILE_LIST
extra/MANIFEST.bz2
extra/PACKAGES.TXT
extra/README.TXT
extra/slackpkg/slackpkg-2.70.3-noarch-2.tgz
extra/slackpkg/slackpkg-2.70.3-noarch-2.tgz.asc
extra/slackpkg/slackpkg-2.70.3-noarch-2.txt
isolinux
isolinux/README.TXT
isolinux/f2.txt
isolinux/initrd.img
Ovvero contiene tutti file e le directory per esempio della directory di un mirror remoto :mirror/slackware-12.1/
...cioè non tutti, solo quelli che vogli scaricare, però ha quella struttura lì.
Spero vada bene.
Ok. allora, modifico lo script su tuo consiglio. In ogni caso farò sapere se ha funzionato.
Saluti e grazie per la dritta. :-p

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Files omonimi in release differenti di slack e rsync

Messaggio da conraid »

joe ha scritto: Ok. allora, modifico lo script su tuo consiglio. In ogni caso farò sapere se ha funzionato.
Saluti e grazie per la dritta. :-p
Di niente, ma attento, --exclude-from="*" ti darà errore. Al limite --exclude="*"

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Files omonimi in release differenti di slack e rsync

Messaggio da joe »

Allora, ho provato.
Sull'esempietto di directory semplici con solo files al loro interno funge. Purtroppo la dir remota slackware-12.1 è un attimo più comlessa, ovvero ha subdirectory ecc ecc.
Leggendo il man avevo notato alcuni moniti....
Va bè... per simulare meglio l'operazione ho creato 2ue directory "a" e"c" leggermente più complicate con sottodirectory ecc. Purtroppo così la storia cambia.
Da quanto ho capito, l'esclusione a mezzo del jolly nella seconda lista causa l'esclusione dal rsync delle "parent directory" e la lista di inclusione non può nulla perchè e costruita sula base dei files "profondi" più interni diciamo.
Potrebbe essere sufficente aggiungere all'inclusione anche i parent-directory singoli (come peraltro è costruito ancheil file FILELIST.TXT) ma non ho acnora provato. Magari provo mentre scrivo ;-)

Intanto posto il risultato disastroso della prova:

Codice: Seleziona tutto

[xxx@xxx prove]$ cat lista
paperopoli/paperino
paperopoli/paperone
topolinia/pippo
[xxx@xxx prove]$ cat lista2
*
[xxx@xxx prove]$ ls -R a c
a:
altre_dir
altri_files
paperopoli
topolinia

a/altre_dir:
altri-files

a/paperopoli:
paperino
paperone

a/topolinia:
pippo
pluto
topolino

c:
altre_dir
paperopoli
topolinia

c/altre_dir:
files-inutili

c/paperopoli:
paperino
paperone

c/topolinia:
pippo
[xxx@xxx prove]$ rsync -avz --include-from=lista --exclude-from=lista2 --delete --delete-excluded a/ c/
building file list ... done
deleting topolinia/pippo
deleting topolinia/
deleting paperopoli/paperone
deleting paperopoli/paperino
deleting paperopoli/
deleting altre_dir/files-inutili
deleting altre_dir/
./

sent 78 bytes  received 26 bytes  208.00 bytes/sec
total size is 0  speedup is 0.00
[xxx@xxx prove]$ ls -R a c
a:
altre_dir
altri_files
paperopoli
topolinia

a/altre_dir:
altri-files

a/paperopoli:
paperino
paperone

a/topolinia:
pippo
pluto
topolino

c:
magari basta fare la lista come segue, vediamo come viene fuori:

Codice: Seleziona tutto

[xxx@xxx prove]$ cat lista
paperopoli
paperopoli/paperino
paperopoli/paperone
topolinia
topolinia/pippo
[xxx@xxx prove]$ cat lista2
*
[xxx@xxx prove]$ ls -R a c
a:
altre_dir
altri_files
paperopoli
topolinia

a/altre_dir:
altri-files

a/paperopoli:
paperino
paperone

a/topolinia:
pippo
pluto
topolino

c:
altre_dir
paperopoli
topolinia

c/altre_dir:
files-inutili

c/paperopoli:
paperino
paperone

c/topolinia:
pippo
[xxx@xxx prove]$ rsync -avz --include-from=lista --exclude-from=lista2 --delete --delete-excluded a/ c/
building file list ... done
deleting altre_dir/files-inutili
deleting altre_dir/
./
paperopoli/
paperopoli/paperino
paperopoli/paperone
topolinia/
topolinia/pippo

sent 314 bytes  received 104 bytes  836.00 bytes/sec
total size is 0  speedup is 0.00
[xxx@xxx prove]$ ls -R a c
a:
altre_dir
altri_files
paperopoli
topolinia

a/altre_dir:
altri-files

a/paperopoli:
paperino
paperone

a/topolinia:
pippo
pluto
topolino

c:
paperopoli
topolinia

c/paperopoli:
paperino
paperone

c/topolinia:
pippo
Ok, così pare funzionare, mi piaceva di più il --file-from perchè mi sembra più "controllabile" tuttavia probabilmente è solo un'impressione. E poi sembra funzionare solo verso una destinazione "vuota", invece così con le due liste e le opzioni --exclude/include-from= pare funzionare.

Se avete qualche commento da aggiungere non esitate. In ogni caso proverò con la ben più complessa dir slackware-12.1 e vediamo cosa succede.
Saluti

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Files omonimi in release differenti di slack e rsync

Messaggio da joe »

Informo che pare funzionare bene anche con la dir remota slackware-12.1.
Non volendo bruciare un CD, ho anche provato l'installazione della slack-12.1 usando come "source" proprio la dir ottenuta con la sincronizzazione e avviando col cd della 12.0 che avevo masterizzato tempo fà. Cioè ora scrivo dalla 11.0, qui ho la directory slackware-12.1/. Su un'altra partizione ho messo la 12.1 prendedo i file da quella directory e lavorando dal cd di installazione della 12.0. Non so se mi sono spiegato.
Si sarebbe potuto anche creare la iso e montarla in fase di installazione, ma a questo punto mi pare più semplice così installando "SOURCE from another device". ;-)

Saluti e grazie mille dell'aiuto.Rsync è davvero un'ottimo strumento, spero che questo post possa essere utile ad altri. :p

Rispondi