mv oppure cp tra 2 filesystem diversi??

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.
Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da Mario Vanoni »

wakkokid ha scritto: Se si usasse (cp + sync + rm) credo che si elimini questo rischio, in quanto la copia originale non viene eliminata prima di essere sicuri di aver svuotato la cache.
Davo per scontato che si usassero le vecchie regole UNIX,
sh script con sempre un "sync ; sync ; sync" finale,
nei programmi C usare fsync(2), ma non sicuro in Linux, meglio usare fdatasync(2).

Avatar utente
krisis
Linux 4.x
Linux 4.x
Messaggi: 1120
Iscritto il: mar 25 gen 2005, 0:00
Distribuzione: debian
Località: Roma

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da krisis »

Ma veramente vi state attaccando a quei pochi millisecondi in cui il dato resta in cache?
Disabilito il follow up su questo thread.

Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da wakkokid »

krisis ha scritto:Ma veramente vi state attaccando a quei pochi millisecondi in cui il dato resta in cache?
Disabilito il follow up su questo thread.
la discussione è nata con "cp+rm è più veloce di mv?" ... diciamo che si presta bene a discussioni sul sesso degli angeli :D .

Comunque penso che i dati possano rimanere in cache per più di qualche millisecondo.
Io ne so poco di questo argomento ma l'esempio di Vanoni è interessante, credo che in situazioni particolare si possa raggiungere anche qualche secondo di intervallo tra scrittura reale e "percepita" dal SO.
Credo che basti fare una prova: attacca un hd esterno montalo. Ora smontalo. lo fa istantanemente.
Ora riattacca lo stesso hd e montalo, fai un cp di una directory con molti dile. APPENA COMPLETATO il CP, esegui l'umount. A volte possono essere necessari anche un paio secondi per effettuare l'umount. Credo che quei secondi siano il tempo che impiega l'hd a finire di svuotare la cache sull'hd.

È un'ipotesi sensata?

erio
Linux 4.x
Linux 4.x
Messaggi: 1213
Iscritto il: ven 9 ott 2009, 19:25
Slackware: 13.37
Kernel: 3.0.7
Desktop: kde

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da erio »

è cosi, su chiavi usb sposti dei dati fai poweroff o reboot finche non si libera tutto il processo,non da il comando.

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da Ansa89 »

erio ha scritto:finche non si libera tutto il processo,non da il comando.
Non è esatto: il comando lo dà, nel senso che inizia il procendimento di spegnimento, il quale prevede il sync di tutti i file system montati (la vera pena è quando si ha un export nfs montato e ci mette 5 minuti per colpa della rete 10 Mbps).

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6566
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da targzeta »

Secondo me ci stiamo confondendo le idee. Il problema sollevato da puzuma è fondato e lo potete testare anche voi. Vi posto il resoconto:

Codice: Seleziona tutto

$>mount /mnt/pendrive

$> ls
totale 5,3M
5,3M MPlayer-SVN_r32943.tar.bz2 

$> mv MPlayer-SVN_r32943.tar.bz2 /mnt/pendrive/

$> ls
totale 0

$> ls /mnt/pendrive
totale 5,3M
5,3M MPlayer-SVN_r32943.tar.bz2*
Il file è stato spostato correttamente giusto? Vediamo, stacco la pennina senza fare umount, come avverrebbe se mancasse la corrente o per distrazione. Faccio un umount per non creare problemi (ma la pennina non c'è!).

Codice: Seleziona tutto

$>umount /mnt/pendrive/
Riattacco la pennina:

Codice: Seleziona tutto

$> mount /mnt/pendrive/

$> ls /mnt/pendrive/
totale 0
Conclusione, il flie MPlayer-SVN_r32943.tar.bz2 è, usando le parole di puzuma, nell'iperspazio.

Però il problema non è dovuto alla cache di nessun supporto, HD o pennina (ma la pennina ha una cache?). Il problema avviene per via dell'opzione 'async' passata a 'mount',
man mount ha scritto:async
All I/O to the filesystem should be done asynchronously. (See also the sync option.)
questa opzione è di default abilitata anche quando nell'fstab (per chi la usa ancora) c'è inserito 'defaults':
man mount ha scritto:defaults
Use default options: rw, suid, dev, exec, auto, nouser, and async.
quindi è molto probabile che tutti i nostri filesystem siano montati in questo modo, ergo, se la corrente va giù effettivamente si potrebbe perdere qualche file spostato, anche se mv finisce correttamente la sua esecuzione.

Per rispondere a "wakkokid", non c'entra niente la cache del supporto. E' solo che il kernel si mette i file in memoria (se ha spazio) e non li sposta direttamente (in questo caso sulla pennina), lo farà in un secondo momento, o quando lo ritiene più opportuno o quando glielo chiediamo noi, ad esempio con 'umount'.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da Mario Vanoni »

spina ha scritto: Per rispondere a "wakkokid", non c'entra niente la cache del supporto. E' solo che il kernel si mette i file in memoria (se ha spazio) e non li sposta direttamente (in questo caso sulla pennina), lo farà in un secondo momento, o quando lo ritiene più opportuno o quando glielo chiediamo noi, ad esempio con 'umount'.
Per le pennette avrai forse ragione,
ma per spostare files da un HD all'altro probabilmente erri.
Il kernel mette sulla RAM quello che puo`,
lo passa al disco, la sua cache mangia quanto e` grande,
quello assorbito non esiste piu` sulla RAM!
Con errore questa quantita` e` andata persa.
La logica HD non e` governata dal SO, e` indipendente!

Avatar utente
Trotto@81
Iper Master
Iper Master
Messaggi: 3558
Iscritto il: sab 26 giu 2004, 0:00
Nome Cognome: Andrea
Slackware: Slackware64 14.2 bet
Kernel: default
Desktop: KDE 4.14.14
Località: Monasterace M. (RC)
Contatta:

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da Trotto@81 »

E quali sono i casi in cui lo spostamento tra HD può andare perso?

Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da wakkokid »

spina ha scritto: Per rispondere a "wakkokid", non c'entra niente la cache del supporto. E' solo che il kernel si mette i file in memoria (se ha spazio) e non li sposta direttamente (in questo caso sulla pennina), lo farà in un secondo momento, o quando lo ritiene più opportuno o quando glielo chiediamo noi, ad esempio con 'umount'.
Quindi il problema è lo stesso solo che i dati vengono "parcheggiati" in RAM anziché nella CACHE dell'HD?
Effettivamente potevo pensarci, "free" mostra anche due voci "buffers" e "cache", sarà sicuramente quello.
In tal caso il problema è anche accentuato, visto che la RAM è molto più grande della cache Hd
Potrebbe lo stesso essere un buon motivo per fare cp+sync+rm anziché mv per dati particolarmente sensibili:
(la vera pena è quando si ha un export nfs montato e ci mette 5 minuti per colpa della rete 10 Mbps)
5 minuti di "dubbio" per dati vitali, quando se avessi usato cp+sync+rm non avrei alcun dubbio!

Ovviamente, il succo del discorso è il sync tra cp e rm, come detto da meskaladmug cp+rm e mv sono la stessa cosa.

Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da wakkokid »

Trotto@81 ha scritto:E quali sono i casi in cui lo spostamento tra HD può andare perso?
Se ho capito bene, qualunque caso che comprometta lo svuotamento della ram (o cache HD) sul dispositivo, evento che deve accedere nello stretto lasso di tempo tra fine del comando cp e l'effettiva fine dello svuotamento del buffer.

-Freeze / crash SO
-blackout
-scollegamento dispositivo senza umount (pendrive o hd esterni)
-problemi/cadute di connessione nella rete (nfs e filesystem di rete)
- ?

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da Mario Vanoni »

wakkokid ha scritto:Se ho capito bene, qualunque caso che comprometta lo svuotamento della ram (o cache HD) sul dispositivo, evento che deve accedere nello stretto lasso di tempo tra fine del comando cp e l'effettiva fine dello svuotamento del buffer.
Non dimenticare che mv (cp + unlink) attraversa nell'ordine
- il processore
- la sua L2 cache, L3 cache se ne ha
- la RAM del sistema
- la cache HD
- la logica HD

Il minimo errore in uno stadio ...

Anni fa il sole ha fatto una erruzione molto violenta,
luci0 probabilemte puo` citare o ricorda i fatti,
satelliti in TILT come pure computer sul pianeta.

http://www.bbc.co.uk/news/science-environment-12493980
Solar flares are caused by the sudden release of magnetic energy stored in the Sun's atmosphere.

Their effects can interfere with modern technology on Earth, such as electrical power grids, communications systems and satellites - including satellite navigation (or sat-nav) signals.

Avatar utente
krisis
Linux 4.x
Linux 4.x
Messaggi: 1120
Iscritto il: mar 25 gen 2005, 0:00
Distribuzione: debian
Località: Roma

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da krisis »

Le cavallette? Perchè nessuno nomina le cavallette!!
Prima ho sentito Giacobbo di Voyager e secondo lui mv fallisce per colpa di un complotto fatto dai templari riuniti nella piramide di giza mentre invocano gli alieni.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6566
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da targzeta »

krisis ha scritto:Le cavallette? Perchè nessuno nomina le cavallette!!
Prima ho sentito Giacobbo di Voyager e secondo lui mv fallisce per colpa di un complotto fatto dai templari riuniti nella piramide di giza mentre invocano gli alieni.
Sono d'accordo con te krisis, però devi ammettere anche tu che il topic, nonostante tutto, è stato istruttivo. Se è vero che il comando 'mv' segue l'algoritmo spiegato da masalapianta, è anche vero che il problema sollevato da puzuma è fondato, come ho cercato di far vedere con un esempio.

Emanuele

Offtopic: Ma Giacobbo ce l'ha co sti templari eh?
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da masalapianta »

Trotto@81 ha scritto:Mario è tutto fuorché uno sprovveduto
dai, basta scherzare :toothy7: :toothy7: :toothy7:

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: mv oppure cp tra 2 filesystem diversi??

Messaggio da masalapianta »

puzuma ha scritto:h
mv è vero che fa l'unlink solo a fine copia però non aspetta il flush del filesystem. Cerco si spiegare meglio il mio pensiero: sappiamo tutti che il OS non copia il file subito ma lo mette in una sorta di coda e poi lo copia quando ha tempo, è una cosa che succede continuamente con le chiavette USB, infatti quando le si va a smontare capita che la copia venga conclusa solo in quel momento. Quindi c'è almeno un caso in cui mv mi fa perdere un file: quando lo copio su un dispositivo montato senza copia sincronizzata, se tolgo il dispositivo (o va via la corrente) ecco che il mio file è rimasto nell'iperspazio senza che nessuno mi abbia dato errori.
per questo son stati creati i filesystem journaled (certo che se poi si montano con opzioni tali che, per favorire le performance, si rischia comunque di perder dati, quello non è un problema di mv o del filesystem)

Rispondi