Vfat on ilmeisesti ongelmallinen tiedostojärjestelmä, mutta tärkeä jos haluaa muistitikkunsa/kannettavan kiintolevynsä toimivan kaikissa tietokoneissa. Haluan ohjelman, jolla tehdä backup. Sen tulisi osata siirtää vain muuttuneet tiedostot. No, rsync on ilmeisesti todella kätevä, joten sitä tässä yritetään.
Täällä on selostettu niitä ongelmia, mitä tulee käytettäessä (vaikkapa) ext3 ja vfat -tiedostojärjestelmiä yhtäaikaa rsyncin kanssa. Tein fstabiin tarvittavat tuon sivun ehdottamat muutokset:
/dev/sdb1 /media/usb vfat rw,nosuid,nodev,nodiratime,uid=1000,gid=100,fmask=0002 ,dmask=0002,shortname=mixed,user,utf8,noexec 0 0
Seuraavanlainen ongelma tuli vastaani. Teen testikansion "testi". Teen sinne kaksi tiedostoa:
touch testi/jotain
touch testi/uusi_testaus
Sitten mounttaan muistitikun (sdb1) ja kokeilen rsyncata:
rsync -tvr testi/ /media/usb/
building file list ... done
./
jotain
uusi_testaus
sent 168 bytes received 70 bytes 476.00 bytes/sec
total size is 0 speedup is 0.00
Umountataan tikku ja mountataan takaisin. Suoritetaan edellinen komento uudestaan:
building file list ... done
./
jotain
sent 126 bytes received 48 bytes 348.00 bytes/sec
total size is 0 speedup is 0.00
Eli miksi rsync osaa olla kopioimatta tiedoston "uusi_testaus" mutta tiedosto "jotain" tulee kopioitua, vaikkei pitäisi?
EDIT:
Täältä poimittua:Another common cause involves sending files to an Microsoft filesystem: if the file's modified time is an odd value but the receiving filesystem can only store even values, then rsync will re-transfer too many files. You can avoid this by specifying the --modify-window=1 option.
Eli sopiva komento onkin
rsync -tvr --modify-window=1 testi/ /media/usb/
Ihmettelin suuresti, kun tekemäni testitiedostot alkoivat käyttäytyä ihan randomisti välillä kopioituen ja välillä ei. Se johtuikin sitten tiedoston muokkauskellonajasta