Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: Tomin - 26.02.08 - klo:18.26
-
Miten voisin synkronoida muistitikun sisällön automaattisesti koneelle? Siis olisi kansio johon tulisi samat tiedostot (ja häviäisi poistettaessa) kuin muistitikulle aina kun se liitetään.
Tuon voi varmaankin rsync:illä tehdä, mutta en tiedä miten.
Plussaa olisi jos voisi tallentaa siihen kansioon koneella vaikkei tikku olisi kiinni ja ne tiedostot kopioituisivat tikulle kun se kytketään. (tämä ei ole välttämätöntä)
Sen pitäisi sitten toimia vain sen tietyn tikun kanssa.
EDIT0: Täällä on ainakin jotakin: http://ubuntuforums.org/showthread.php?p=4393212
Mutta en oikein tajua sitä... ;D
EDIT1: Unison ratkaisi pulman! (lisätty [RATKAISTU] otsikkoon)
-
Purkkasysteemi tulee mieleen. Tekee kronille scriptin, joka pollaa /media-kansiota (minuutin tai 10 minuutin välein). Jos /media-kansiossa on kansioita, tutkii löytyykö ko. kansioista id-tiedosto tai voihan sen halutun tikun määritellä kovalevynimelläkin.
Kun havaitaan oikealla id:llä oleva kovalevy, niin sen jälkeen ajaa rsyncin.
Tämän varmasti osaat itsekin tehdä.
-
Ensimmäisenä tulee mieleen udev-säännöt,
http://forum.ubuntu-fi.org/index.php?topic=11479.0
Tuolla on jonkinlaista infoa, joku joka on asiaan paremmin perehtynyt osaa varmaan neuvoa paremmin.
Edit: lisäinfoa
http://ubuntuforums.org/showthread.php?t=542664
-
Purkkasysteemi tulee mieleen. Tekee kronille scriptin, joka pollaa /media-kansiota (minuutin tai 10 minuutin välein). Jos /media-kansiossa on kansioita, tutkii löytyykö ko. kansioista id-tiedosto tai voihan sen halutun tikun määritellä kovalevynimelläkin.
Kronille? En löytänyt sitä Ubuntun lähteistä... ::)
Kun havaitaan oikealla id:llä oleva kovalevy, niin sen jälkeen ajaa rsyncin.
Miten saan sen id:een selville? Ja miten hyödynnän sitä?
Tämän varmasti osaat itsekin tehdä.
Enpä olisi niin varma... ::) ...mutta kokeillaan... :)
-
Purkkasysteemi tulee mieleen. Tekee kronille scriptin, joka pollaa /media-kansiota (minuutin tai 10 minuutin välein). Jos /media-kansiossa on kansioita, tutkii löytyykö ko. kansioista id-tiedosto tai voihan sen halutun tikun määritellä kovalevynimelläkin.
Kronille? En löytänyt sitä Ubuntun lähteistä... ::)
Typohan se siinä tietenkin cron:ia tarkoitin.
Kun havaitaan oikealla id:llä oleva kovalevy, niin sen jälkeen ajaa rsyncin.
Miten saan sen id:een selville? Ja miten hyödynnän sitä?
Taitaa olla jokin tapa saada levyn id:kin selville, mutta jota en muista, mutta voit sen toteuttaa esim. tekstitiedostolla, jonka nimeät sellaiseksi, ettei muista tikuista löydy sen nimistä. Siinä sulla on sitten tikun tunniste, jota voit käyttää.
Tämän varmasti osaat itsekin tehdä.
Enpä olisi niin varma... ::) ...mutta kokeillaan... :)
Toi GodDamnDevin:n idea on huomattavasti siistimpi, ja resursseja säästävämpi. Tosin yksin sillä tehtynä taitaa olla automaattisen synkroonin pysyminen olla hankala toteuttaa.
-
Yritän tässä tajuta, että miten tuo GodDamnDevilin lähettämän linkin skripti toimii. Siis se kopioi tiedostot mistä minne (toimiiko molempiin suuntiin)? Tuhoaako se niitä ja milloin?
Se automaattinen ei (kai) ole välttämätön, ehkä käynnistin sille riittäisi...
EDIT0: Senhän pitäisi siis toimia niin, että se korvaa vanhemman tiedoston uudemmalla sekä kiintolevyllä, että muistitikulla. TOIMIIKO SE NIIN? (...sori, että kirjoitin isolla mutta haluaisin, että tuo huomattaisiin...)
EDIT1: Oikeastaan tuo painike voisi olla kätevämpi, että sitä käynnistintä klikattaisiin ja silloin se kopioi kaikki uudet tiedostot ja ei viellä olemassa olevat molempiin suuntiin ja jos jotain pitää poistaa niin se täytyy poistaa molemmista.
-
Lisäinfoa
http://www.linuxjournal.com/article/9311
Pääasia taitaa kuitenkin olla että, ne tiedot edes syncataan joskus :D
-
Juu vilkaisin tuota, mutta tuo voinee olla vähän turhan monimutkainen... Jos nyt saisi edes semmoisen joka kopioisi nuo uudet tiedostot tikulle ja koneelle sitä klikatessa.
-
Monimutkainen ???
Hepreaa ;)
Aika hyvin oli selvitetty tuossa viimeisessä linkissä...
Jos vaatimukset pienenevät,
sitten riittää pelkkä rsync käsky.. ja sille käynnistin
-
No ei tässä muuta mutta kun on hermot kireällä kun surffaus on per***stä pikkuveljen takia joka lataa jotain vi**n WoW Broken Crashiä... (juu juu tiedän kyllä miten se kirjoitetaan oikeasti) [EDIT0: No nyt se lopetti...*phuu...*)
No okei tarkemmin ajateltuna tuo on suht yksinkertainen ja hyödy ovat (ehkä) aika selvät, mutta tekeekö se mitä pyydetään eli korvaa vanhemman tiedoston uudemmalla sekä kiintolevyllä, että muistitikulla ja jos poistan tiedoston niin miten se onnistuu uusiutuuko se taas heti?
-
No perskutarallaa sentään,
EDIT: Kyseinen viesti ei ole paikkansa pitävä, vielä!!!
Eli scrpiti: /usr/local/bin/sync-thumb.sh
#!/bin/bash
#
# CONFIG SECTION
# Local folder to sync with
SYNC_LOC=/home/jlutes/Desktop/TEST
# Device folder to sync with
SYNC_DEV=TEST
#
# SCRIPT SECTION
# Wait for thumbdrive to settle
sleep 10
# Synchronize thumbdrive with local
rsync -axu /media/disk/${SYNC_DEV}/ ${SYNC_LOC}/
# Synchronize local with thumbdrive
rsync -axu ${SYNC_LOC}/ /media/disk/${SYNC_DEV}/
# Inform user that synchronization is complete.
zenity --title "Thumbdrive Sync" --info --text "File synchronization complete."
ja udev-säännön tekeminen sille tikulle;
Tikku kiinni koneeseen
cat /proc/scsi/usb-storage/*
pitäisi tulla samantapaista
Host scsi5: usb-storage
Vendor: Unknown
Product: USB Mass Storage Device
Serial Number: 85a5b1f2c96492
Protocol: Transparent SCSI
Transport: Bulk
Quirks:
dmesg
tarkista usb-tikun osoite (sda,sdb,sdc,jne..
udevinfo -a -p $(udevinfo -q path -n /dev/sdXXX)
Korvaa XXX tikun osoitteella
Etsi seuraavia rivejä!
BUS=="scsi"
SYSFS{model}=="Flash Voyager "
SYSFS{vendor}=="Corsair "
tehdään udev-säänto
sudo su
gedit /etc/udev/rules.d/95-backup.rules
BUS="scsi", SYSFS{vendor}=="Corsair ", SYSFS{model}=="Flash Voyager ",
SYMLINK="corsair_drive", RUN+="/usr/local/bin/sync-thumb.sh
corsair_drive"
exit
Eikun kaikki kokeilemaan, HUOM Tarkistakaa kohdat!
Nuo ovat lainauksia aikaisemmista linkeistä!
-
Tajusin kyllä miten sitä käytetään, mutta en tajunnut tekeekö se sen mitä haluan oikein! :D
-
Hetki pieni, kokeillaan :D
-
Juu no (jos se toimii kuten haluan) kokeilen sitä sitten kun saan sen koneen ja tikun joilla sitä oli tarkotus käyttää (luultavasti joskus tänään)...
-
Ongelmia, Uudelleen käynnistyksessä herjasi
udevd[2633]: add_to_rules: invalid SUBSYSTEM operation
udevd[2633]: add_to_rules: invalid rule '/etc/udev/rules.d/95-backup.rules:1'
Eli virhe jossain ???
EDIT: virhe tarkennus
Yritetty muokata kyseista tiedostoa monella eri tapaa, ilman ratkaisua,
sama virhe toistuu aina tallentaessa /var/log/syslog :ssa
-
No sepä hauskaa... ;) Se ei varmaan estä mitään, mutta oliko sinulla tikku kiinni käynnistyksessä? Jos ei niin laita kiinni ja kokeile.
Tutkin oman tikkuni tietoja (tätä ei ole tarkoitus käyttää siihen kunhan vain testailen) ja siellä ei ole rivejä: BUS=="scsi"
SYSFS{model}=="Flash Voyager "
SYSFS{vendor}=="Corsair "
Mutta siellä on: SUBSYSTEMS=="scsi"
ATTRS{model}=="DataTraveler 2.0"
ATTRS{vendor}=="Kingston"
Onkohan nuo vastaavat? Luultavasti minun pitääkirjoittaa tuonne ne tuollaisenaan...
Entä nuo corsair drive kohdat...
-
Tuli tässä mieleen, ettei rsync toimi aivan perfekto, mikäli molemmissa medioissa (siis omassa tikkubackup-kansiossa ja tikussa) tapahtuu muutoksia. Sellaisen tekeminen ei ole edes mahdollista, ellei kirjoita jonnekin muistiin viimeksi tapahtuneen syncronointiaikaa. rsyncissä on aina suunta, minne suuntaan muutokset tapahtuvat, joten se tuskin on aivan sitä mitä hait.
-
???
Öh...siis mitä tarkoitat? Miksi se aika pitäisi merkata minnekkään? ???
-
Siis jos sinulla toisesta mediasta puuttuu tieto, ja toisessa mediassa on se tieto, niin mistä luulet rsyncin tietävän pitääkö ko. tieto poistaa toisesta mediasta (siis missä tieto on) vai pitääkö se tieto lisätä toiseen mediaan (siis mistä tieto puuttuu). Jos on aikaleima, niin voidaan katsoa ajan perusteella kumpaa pitää tehdä. Siis jos tieto on tullut jälkeen syncronoinnin, niin tieto pitää lisätä, mutta jos tieto on ollut jo ennen edellistä syncronointia tieto pitää poistaa. ;)
-
Niin tuo ongelma tulee poistamisen kanssa... Tuossa skriptissä taisi olla sleep 10 joten se antaa 10 sekuntia aikaa poistaa ne molemmat tiedostot...
EDIT0: Minkä perusteella tuo rsync tutkii onko se tiedosto uudempi? Muokkauksen, koon vai minkä?
-
EDIT0: Minkä perusteella tuo rsync tutkii onko se tiedosto uudempi? Muokkauksen, koon vai minkä?
Kuten sanoinkin rsync ei toimi aivan halutulla tavalla - vaan siinä on aina SRC ja DEST l. suunta. l. sillä voi muuttaa joko kovalevyllä olevan tiedon mukaiseksi tai muistitikun mukaiseksi, mutta molempiin suuntiin ei muutokset siirry.
man rsync - kertoo lisää.
-
EDIT0: Minkä perusteella tuo rsync tutkii onko se tiedosto uudempi? Muokkauksen, koon vai minkä?
Kuten sanoinkin rsync ei toimi aivan halutulla tavalla - vaan siinä on aina SRC ja DEST l. suunta. l. sillä voi muuttaa joko kovalevyllä olevan tiedon mukaiseksi tai muistitikun mukaiseksi, mutta molempiin suuntiin ei muutokset siirry.
Siis tarkoitatko ettei se tutki tuota?
Jos niin on niin milläs minä sen sitten teen...? ???
Ongelmia, Uudelleen käynnistyksessä herjasi
udevd[2633]: add_to_rules: invalid SUBSYSTEM operation
udevd[2633]: add_to_rules: invalid rule '/etc/udev/rules.d/95-backup.rules:1'
Eli virhe jossain ???
EDIT: virhe tarkennus
Yritetty muokata kyseista tiedostoa monella eri tapaa, ilman ratkaisua,
sama virhe toistuu aina tallentaessa /var/log/syslog :ssa
Feb 26 20:56:56 tomppeli-laptop udevd[3575]: add_to_rules: invalid rule '/etc/udev/rules.d/95-backup.rules:3'
Feb 26 20:56:56 tomppeli-laptop udevd[3575]: add_to_rules: invalid rule '/etc/udev/rules.d/95-backup.rules:3'
Ai näin? Per... ;D
-
Minä käytän synkkaukseen rsyncin sijaan unisonia, joka on paljon monipuolisempi. Se sopinee automatisoitavaksi ihan siinä kuin rsync’kin, ehkä jopa paremmin, mutta en ole kokeillut.
-
Minä käytän synkkaukseen rsyncin sijaan unisonia, joka on paljon monipuolisempi. Se sopinee automatisoitavaksi ihan siinä kuin rsync’kin, ehkä jopa paremmin, mutta en ole kokeillut.
Minäkin suosittelen käyttämään rsync:n sijasta unisonia tällaisessa tehtävässä. Tosin jos sen laittaa toimimaan taustalla hiljaisesti ja molemmissa kohteissa on tiedostoa muokattu niin kumpaakaan ei kopioida minnekään. Periaatteessa tämä on myös oikea tapa toimia sillä vain käyttäjä tietää mitä näille tiedostoille oikeasti tulisi tehdä.
-
Hmm... unison:in man sivu ei kerro kauheasti sen käytöstä -> googlataan/kuukeloidaan/tjsp...
EDIT0: Pienen tutkimuksen jälkeen se toimii yksin kertaisesti niin, että "unison /paikkaA /paikkaB" Ja ilmeisesti se tarkistaa milloin tiedostoa on muokattu. Toimiiko tuo niin, että teen kuvakkeen jossa on komento "unison /paikka/kiintolevyllä /paikka/muistitikulla" ja sitten se aina klikattaessa korvaa vanhemman tiedoston uudemmalla ilma että se kysyy mitään? Tosin ilmeisesti jos molempia on muokattu niin se ei tee mitään, mutta sellaista tilannetta ei tule vastaan luultavasti.
Ohjeita: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#tutorial
-
En suoraan osaa vastata mutta kokeile tuon toimintaa eri tapauksissa komentoriviltä ja katso miten se toimii. Voi olla että tarvitset tuohon mukaan joitakin optioita jotta suoritus ei pysähdy mihinkään kysymykseen (esimerkiksi -batch tai -auto voivat olla tarpeen). Toimintaa kannattaa testata ainakin niissä tapauksissa kun molemmissa hakemistoissa on eri tiedostot muuttuneet ja kun molemmissa on sama tiedosto muuttunut.
-
Tuo toimii hyvin. Ainut on, että ehkä pitää käyttää autoa ja että kyselee noista korvaus jutuista (mutta koska tämä ei varsinaisesti tule minua varten täytynee kysellä siitä vielä). Kokeilin tehdä tuolle käynnistimen ainakaan sellaisenaan ei toimi. Skriptinä ehkä, kokeilen
EDIT0: Ei toimi...! Mitä hel...?! >:(
EDIT1: Vika on mussa... Tyhjensin toisen kansion niin se ei suostunut tekemään sitä... ::)
EDIT2: I think it works perfectly! :D