On Saturday 28 October 2006 17:15, Emanuele Olivetti wrote: > Ciao, > ho copiato il contenuto di una partizione in un'altra partizione piu' > grande (non potevo modificarne le dimensioni) utilizzando "rsync -a > sorgente destinazione". Se utilzzo "du" per avere informazioni sullo spazio > occupato noto > che lo spazio occupato dalle due directory e' differente! > > Filesystem 1K-blocks Used Available Use% Mounted on > /dev/hda4 3844864 3496832 152720 96% /sorgente > /dev/hda12 4845992 3185212 1660780 66% /destinazione > > e la differenza e' sostanziale: circa 300Mb. Sei sicuro che questo sia l'output di du? > L'unica differenza tra le due partizioni e' che la prima (hda4) e' > ext3, mentre la seconda (hda12) e' reiserfs. > > All'atto pratico, confrontando il contenuto delle due directory con "diff > -r" risultano identiche (e ci mancherebbe che rsync sbagliasse!). Sarebbe carino vedere se hai hard link e sparse file nella sorgente e le opzioni esatte di rsync che hai usato. Poi pure rsync ha avuto i suoi bachi, ma non sembra questo il caso. diff -r non è sempre significativo, per esempio si imbroglia con i soft link, non spiego come l'ho scoperto, ringrazio ancora il backup. > Dove sta l'inghippo? Dove sono finiti i 300Mb in questione? Che né du né df misurano quello che tu pensi che misurino, nel modo in cui tu pensi lo misurino. In pratica le misure dello spazio occupato, per du di un generico sottoalbero dipendono almeno * dalla dimensione del blocco del filesystem sottostante $ mkfs.ext2 -b 1024 1024 [...] $ mkfs.ext2 -b 4096 4096 [...] $ echo 'test' > mount-1024/test $ cp mount-1024/test mount-4096/ $ du -chs mount-1024/test mount-4096/test 1.0K mount-1024/test 4.0K mount-4096/test 5.0K total * da come il filesystem sottostante conta la dimensione di una directory $ mkdir dir-on-xfs $ mkdir dir-on-ext3 $ du -b dir-on-xfs 6 dir-on-xfs $ stat dir-on-xfs | grep Size Size: 6 Blocks: 0 IO Block: 4096 directory $ du -b dir-on-ext3 4096 dir-on-ext3 $ stat dir-on-ext3 | grep Size Size: 4096 Blocks: 8 IO Block: 4096 directory * da come poni la domanda, nel caso siano presenti multipli hard link $ echo 'test' > a/test $ du -b ./a/test 5 ./a/test $ du -b ./a 22 ./a $ ln a/test b/link $ du -b ./b/link 5 ./b/link $ du -b ./b 11 ./b $ du -b 22 ./a 6 ./b 50 . Scusa ma ora non ho tempo di dilungarmi sulla spiegazione degli esempi, spero siano sufficientemente chiari. Per questi motivi nella man page di du la breve descrizione recita "estimate file space usage". Per altro, secondo me la man page è pure sbagliata per --apparent-size Anche df soffre della dipendenza dal filesystem sottostante, per almeno: * da come viene contato il journal per lo spazio usato * anche i blocchi riservati entrano nel conto per lo spazio libero e forse pure da qualcos'altro. Parlando un po' più in generale controllare con du un rsync non serve a molto, piuttosto usa un md5sum o un sha1sum. Scusate l'italiano molto stentato... Buona serata, Daniele P. -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx