Kirjoittaja Aihe: SSH & rsync kyssäri  (Luettu 7085 kertaa)

PaHa

  • Käyttäjä
  • Viestejä: 164
    • Profiili
SSH & rsync kyssäri
« : 08.11.09 - klo:23.43 »
Tiedä nyt sitten onko peruskysymys vaiko eikö.. tänne kuitenkin tuuppaan kun en nyt enää jaksa kaivella...

Ongelma (tai siis tarve): Toiseen koneeseen (eri verkossa) olen luonut tilin itselleni ja tarkoitus olisi käyttää tuota kokonaan toista fyysistä konetta tiettyjen oleellisten tietojen varmistamiseen niin että tiedostot fyysisesti ovat kahdessa eri paikassa.

- Miten ja millä komennolla saan ajettua rsync komentoa ssh-tunnelin läpi?

ssh toimii nyt mainiosti komennolla: ssh tunnus@ip-osoite -p22022

- Millä komennolla luon ssh-tunnelin minkä sisässä ajan rsynccia?
- Millä komennolla sitten ajan "etäkoneessa" rsynccia jotta saisin komennolla synkronoitumaan tiedostot/kansiot niin että kotikoneen tiedostot -avru vivuilla synkronoituvat etäkoneelle...

- jos yhtään ymmärrän oikein niin rsync komennon joudun antamaan "etäkoneella"? Joka silloin rsync komennon kannalta on source ja kotikoneeni on destination... Vai pääsenko jotenkin "takaisin" antamaan tuota komentoa kotikoneelleni vaikka ssh onkin jo avattu...

Sorry toivottavasti ei ole tyhmä kyssäri...


peran

  • Vieras
Vs: SSH & rsync kyssäri
« Vastaus #1 : 08.11.09 - klo:23.59 »
Tästä ei ole ollut puhetta pitkään aikaan, mutta sinua auttaneen ongelmassa sshfs, jolla voit liittää ssh-kansion tiedostojärjestelmääsi.

Edit - olettaen, että koneeseen, johon tallennat varmuuskopiot on asennettuna kunnollinen käyttöjärjestelmä.
« Viimeksi muokattu: 09.11.09 - klo:00.05 kirjoittanut peran »

PaHa

  • Käyttäjä
  • Viestejä: 164
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #2 : 09.11.09 - klo:18.56 »
Kiitos tästä ja sainkin jotenkin toimimaan mutta pieniä ongelmia on edelleen...

Olen tehnyt homman ohjeen mukaan: http://wiki.ubuntu-fi.org/sshfs

sshfs pelaa ja mounttaus toimii mutta silti on epäilys että jokin ei ole oikein koska tulee virheilmoitus kohdassa:

sudo modprobe fuse

FATAL: Module fuse not found.


$ sudo chmod +x /usr/bin/fusermount
[sudo] password for ubupaha:
chmod: cannot access `/usr/bin/fusermount': No such file or directory

Tuohon en löytänyt googlettamalla apuja...

Mounttaus kuitenkin onnistuu:

peehoo@xx.xx.xx.xx:./valokuvat_varmistus on /mnt/leksa type fuse.sshfs (rw,nosuid,nodev,max_read=65536,user=ubupaha)

Tämän lisäksi jostain syystä tulee permission denied ongelmia rsync komennolla (varmaan ihan tuolin ja näppäimistön välisiä asioita):

ubupaha@PAHAUBUSRV:/mnt/varmistus/testi$ rsync -avruz ./* /mnt/leksa/

sending incremental file list
Nursery rhymes and songs.doc
lastenlauluja.doc
pasi laskelma.xls
rsync: chgrp "/mnt/leksa/.MapSourcen v9 cityselect europe avaus.doc.HtK1Wq" failed: Permission denied (13)
rsync: chgrp "/mnt/leksa/.Nursery rhymes and songs.doc.ipgxoS" failed: Permission denied (13)
rsync: chgrp "/mnt/leksa/.lastenlauluja.doc.jMNTpT" failed: Permission denied (13)
rsync: chgrp "/mnt/leksa/.pasi laskelma.xls.o1Ja8b" failed: Permission denied (13)

sent 46414 bytes  received 88 bytes  1069.01 bytes/sec
total size is 258560  speedup is 5.56
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1058) [sender=3.0.5]

ja jos ajan komennon uudestaan niin:

 rsync -avruz ./* /mnt/leksa/
sending incremental file list
rsync: chgrp "/mnt/leksa/Nursery rhymes and songs.doc" failed: Permission denied (13)
rsync: chgrp "/mnt/leksa/lastenlauluja.doc" failed: Permission denied (13)
rsync: chgrp "/mnt/leksa/pasi laskelma.xls" failed: Permission denied (13)

sent 174 bytes  received 24 bytes  396.00 bytes/sec
total size is 258560  speedup is 1305.86
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1058) [sender=3.0.5]

Jotain en osaa?

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #3 : 09.11.09 - klo:19.31 »
jos tuohon alkuperäiseen kysymykseen vastaisin, niin parametrilla -e saa määriteltyä mitä remote shelliä käyttää, ssh:n tapauksessa se on tietysti '-e ssh' jonka lisäät valitsemiesi optioiden lisäksi. rsyncin man-sivuilta löytyy ihan suoraan useampikin esimerkki.
Janne

PaHa

  • Käyttäjä
  • Viestejä: 164
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #4 : 09.11.09 - klo:23.28 »
TY 4 that... mutta tällä hetkellä olen kiinnostuneempi tuosta sshfs toiminnallisuudesta koska se tarjoaa muutamia minulle maukkaammin soveltuvia etuja... Kunhan vaan saan sen toimimaan... Googlettamalla on näköjään muillakin ongelmia tuon fusen kanssa.

Jos joku osaisi auttaa niin olisin kovasti kiitollinen.

peran

  • Vieras
Vs: SSH & rsync kyssäri
« Vastaus #5 : 10.11.09 - klo:00.11 »
Jos joku osaisi auttaa niin olisin kovasti kiitollinen.

Valitettavasti minä en ole se joku, vaikka herätinkin kiinnostuksesi ko. viritelmälle, koska en ole vähään aikaan ko. viritystä käyttänyt. Oletin vain sen edelleen toimivan.

PaHa

  • Käyttäjä
  • Viestejä: 164
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #6 : 10.11.09 - klo:01.21 »
No itse asiassa aloinkin hinkkaamaan sitten tuolla rsync -komennolla ssh vivuilla jne... tuntuupi jopa toimivan...

Mitkä vivut pitää olla päällä jotta tiedostojen tiedot pysyvät "samoina" kuin lähetyspäässä... pois lukien omistajuus ei ole merkittävä asia...

peran

  • Vieras
Vs: SSH & rsync kyssäri
« Vastaus #7 : 10.11.09 - klo:03.29 »
Tätä tulee käytettyä. Tosin silloin säilyy omistajuuskin.
Koodia: [Valitse]
rsync -auvH

PaHa

  • Käyttäjä
  • Viestejä: 164
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #8 : 10.11.09 - klo:10.14 »
Onkos tässä mitään järkeä (kunhan testasin, enkä edes kunnolla katsonut onko vivut kohdillaan):

rsync -azvrpuh --stats --progress -e 'ssh -p 22022' /source/  peehoo@x.x.x.x:./destination/

tuosta sun versiosta puuttuu multa H. Joudun kysymään tyhmää... Mitä tuo H tarkalleen ottaen tekee? Kun en oikein ymmärrä (preserve hard links)

Miten saan tuohon laitettua salasanankin ettei se sitä joka kerta kysy?
« Viimeksi muokattu: 10.11.09 - klo:10.53 kirjoittanut PaHa »

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #9 : 10.11.09 - klo:13.07 »
Kannattaa säätää se ssh-yhteys käyttämään kirjautumiseen julkista avainta, niin ei kysele salasanoja. Helpottaa siis muutenkin ssh:n käyttöä. Kts. wikin sshd-ohje ja sieltä kohta "Julkisen avaimen lisääminen palvelimelle".

peran

  • Vieras
Vs: SSH & rsync kyssäri
« Vastaus #10 : 10.11.09 - klo:15.14 »
Jos sulta kerran sshfs-mounttaus sujuu ongelmitta, niin oletko kokeillut käyttää rsync:iä sudona?
Itse käytän ainakin ihan normaalistikin sudona rsynciä, koska se tarvitsee pääkäyttäjän oikeuksia ownereiden muutoksiin.

Onkos tässä mitään järkeä (kunhan testasin, enkä edes kunnolla katsonut onko vivut kohdillaan):

rsync -azvrpuh --stats --progress -e 'ssh -p 22022' /source/  peehoo@x.x.x.x:./destination/

tuosta sun versiosta puuttuu multa H. Joudun kysymään tyhmää... Mitä tuo H tarkalleen ottaen tekee? Kun en oikein ymmärrä (preserve hard links)

En mäkään tarkalleen tiedä, mutta veikkaisin, että kovien linkkien tapauksessa se tekee kovat linkit myös kopioon, jolloin ei kulu kiintolevytilaa kuin yhden kerran. Tosin en tiedä edes toimiiko kyseinen vipu shellin läpi. Enkä ole myöskään testannut onko veikkaukseni oikea. Itsekin olen kopioinut vipuni viisaampien antamien ohjeiden mukaisesti. Toi pikku h taitaa tapauksessasi olla varsin käyttökelpoinen, niin ei mene järjestelmien id:t sekaisin, jos ymmärsin senkään toimintaa oikein.

Miten saan tuohon laitettua salasanankin ettei se sitä joka kerta kysy?

Välttämättä ole viisas ratkaisu antaa salasanaa scriptiin, eikä ehkä myöskään kannata tehdä salasanatonta private avain filua.

mikko_h

  • Käyttäjä
  • Viestejä: 202
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #11 : 12.11.09 - klo:10.24 »
Onkos tässä mitään järkeä (kunhan testasin, enkä edes kunnolla katsonut onko vivut kohdillaan):

rsync -azvrpuh --stats --progress -e 'ssh -p 22022' /source/  peehoo@x.x.x.x:./destination/

tuosta sun versiosta puuttuu multa H. Joudun kysymään tyhmää... Mitä tuo H tarkalleen ottaen tekee? Kun en oikein ymmärrä (preserve hard links)

Linkkejä on siis kahta sorttia, soft- eli symlinkkejä, joissa linkki on yksinkertaisesti merkkijono, joka osoittaa polun johonkin tiedostoon tai hakemistoon, ja hardlinkkejä, joissa tiedostojärjestelmän tasolla yhden tiedoston sisältö on linkattu hakemistopuussa useampaan paikkaan. Kaikki yhden tiedoston sisältöön osoittavat nimet, jotka eivät ole symlinkkejä, ovat hardlinkkejä, myös siis se ensimmäisenä luotu. Samaan tiedostoon osoittavat hardlinkit toimivat kaikissa suhteissa keskenään identtisesti. Hardlink ei voi osoittaa fyysisen tiedostojärjestelmän ulkopuolelle, kun taas symlinkin polku voi sisältää mitä tahansa, eli osoittaa toisessa koneessa sijaitsevaan tiedostoon tai vaikka ei-mihinkään, eli olla rikkonainen linkki. H-optio siis luo kohdekoneessa hardlinkkejä lähdettä vastaavasti, eikä tee kopioita (siis olettaen, että kohteen tiedostojärjestelmä osaa hardlinkit).

Optio -a sisältää optiot -p ja -r, eli ne voi tuosta komennosta jättää pois.

Rsyncin uudet versiot käyttävät ssh:ta oletuksena, eli ainakin jos ssh vastaa tavallisessa portissa, niin -e -optiota ei nykyään tarvita. Tuossa esimerkissäsi -e taitaa olla portin 22022 takia tarpeellinen.
« Viimeksi muokattu: 12.11.09 - klo:10.33 kirjoittanut mikko_h »

PaHa

  • Käyttäjä
  • Viestejä: 164
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #12 : 12.11.09 - klo:15.04 »
Ja taas tyhmä kyssäri... ln -s linkillä on järkevää linkittää käyttäjän kotihakemiston alla oleva hakemisto toiseen hakemistoon joka sijaitsee minun tapauksessani raidatulla levypakalla jonne käyttäjä varmistaa kamojaan?


- okei tuo a-option -pr sisältyvyyttä en ollut huomannut (muut vivut ilmeisesti kurantteja kun haluan että kohteesta ei poisteta mitään?

- e optiota tarvitsen koska olemme sopineet että ssh vastaa portissa 22022 eikä perusportissaan 22 (tuoko toi nyt sitten lisäturvaa niin se on toinen juttu... Kuitenkin porttia 22 silloin tällöin tökitään maailmalta smoothwall logien perusteella.

peran

  • Vieras
Vs: SSH & rsync kyssäri
« Vastaus #13 : 12.11.09 - klo:16.48 »
Ja taas tyhmä kyssäri... ln -s linkillä on järkevää linkittää käyttäjän kotihakemiston alla oleva hakemisto toiseen hakemistoon joka sijaitsee minun tapauksessani raidatulla levypakalla jonne käyttäjä varmistaa kamojaan?

On. Muistanko oikein, ettei kovia linkkejä pysty käyttämään hakemistoissa.

Kullervo

  • Käyttäjä
  • Viestejä: 876
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #14 : 12.11.09 - klo:17.05 »
Ja taas tyhmä kyssäri... ln -s linkillä on järkevää linkittää käyttäjän kotihakemiston alla oleva hakemisto toiseen hakemistoon joka sijaitsee minun tapauksessani raidatulla levypakalla jonne käyttäjä varmistaa kamojaan?

On. Muistanko oikein, ettei kovia linkkejä pysty käyttämään hakemistoissa.
Katso
http://linux.fi/wiki/Ln

mikko_h

  • Käyttäjä
  • Viestejä: 202
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #15 : 12.11.09 - klo:21.31 »
- okei tuo a-option -pr sisältyvyyttä en ollut huomannut (muut vivut ilmeisesti kurantteja kun haluan että kohteesta ei poisteta mitään?

Juu, rsync ei poista kohteesta lähteestä puuttuvia tiedostoja jos ei erikseen pyydä ja mun käsittääkseni komennossasi oleva -u (update) tekee myös sitä mitä halusitkin.

- e optiota tarvitsen koska olemme sopineet että ssh vastaa portissa 22022 eikä perusportissaan 22 (tuoko toi nyt sitten lisäturvaa niin se on toinen juttu... Kuitenkin porttia 22 silloin tällöin tökitään maailmalta smoothwall logien perusteella.

Portin vaihtaminen ei tietysti paikkaa ssh:ssa olevia aukkoja, mutta on se joka tapauksessa yksi mutka lisää mahdollisen murtautujan matkaan. Varmaan tuo filtteröi pois ison osan satunnaisista kokeilijoista, vaikka ei ehkä estä nimenomaan tästä koneesta kiinnostunutta hiippailijaa.

PaHa

  • Käyttäjä
  • Viestejä: 164
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #16 : 18.11.09 - klo:21.17 »
Mikäköhän tuossa rsync -komennossa mulla mättää kun ymmärrykseni mukaan (jos haluaisin) kohteesta poistaminen pitäisi onnistua --delete vivulla?

Kommentoikaas tätä mikä menee mun ajatuksissa pieleen?:

Koodia: [Valitse]
ubupaha@PAHAUBUSRV:/mnt/varmistus/testi2$ ls -la
total 12
drwxr-xr-x  2 root root 4096 2009-11-18 21:12 .
drwxrwxrwx 13 root root 4096 2009-11-18 21:09 ..
-rw-r--r--  1 root root   47 2009-11-18 21:11 file2
ubupaha@PAHAUBUSRV:/mnt/varmistus/testi2$ sudo rsync -avr --delete ./* ../testi3/
sending incremental file list
file2

sent 120 bytes  received 31 bytes  302.00 bytes/sec
total size is 47  speedup is 0.31

ubupaha@PAHAUBUSRV:/mnt/varmistus/testi3$ ls -la
total 12
drwxr-xr-x  2 root root 4096 2009-11-18 21:13 .
drwxrwxrwx 13 root root 4096 2009-11-18 21:09 ..
-rw-r--r--  1 root root   47 2009-11-18 21:11 file2
ubupaha@PAHAUBUSRV:/mnt/varmistus/testi3$

ubupaha@PAHAUBUSRV:/mnt/varmistus/testi2$ sudo cp file2 file1
ubupaha@PAHAUBUSRV:/mnt/varmistus/testi2$ sudo rsync -avr --delete ./* ../testi3/
sending incremental file list
file1

sent 131 bytes  received 31 bytes  324.00 bytes/sec
total size is 94  speedup is 0.58

ubupaha@PAHAUBUSRV:/mnt/varmistus/testi3$ ls -la
total 16
drwxr-xr-x  2 root root 4096 2009-11-18 21:14 .
drwxrwxrwx 13 root root 4096 2009-11-18 21:09 ..
-rw-r--r--  1 root root   47 2009-11-18 21:14 file1
-rw-r--r--  1 root root   47 2009-11-18 21:11 file2
ubupaha@PAHAUBUSRV:/mnt/varmistus/testi3$

ubupaha@PAHAUBUSRV:/mnt/varmistus/testi2$ ls -la
total 16
drwxr-xr-x  2 root root 4096 2009-11-18 21:14 .
drwxrwxrwx 13 root root 4096 2009-11-18 21:09 ..
-rw-r--r--  1 root root   47 2009-11-18 21:14 file1
-rw-r--r--  1 root root   47 2009-11-18 21:11 file2
ubupaha@PAHAUBUSRV:/mnt/varmistus/testi2$ sudo rm file2
ubupaha@PAHAUBUSRV:/mnt/varmistus/testi2$ ls -la
total 12
drwxr-xr-x  2 root root 4096 2009-11-18 21:15 .
drwxrwxrwx 13 root root 4096 2009-11-18 21:09 ..
-rw-r--r--  1 root root   47 2009-11-18 21:14 file1
ubupaha@PAHAUBUSRV:/mnt/varmistus/testi2$ sudo rsync -avr --delete ./* ../testi3/
sending incremental file list

sent 30 bytes  received 12 bytes  84.00 bytes/sec
total size is 47  speedup is 1.12
ubupaha@PAHAUBUSRV:/mnt/varmistus/testi2$

ubupaha@PAHAUBUSRV:/mnt/varmistus/testi3$ ls -la
total 16
drwxr-xr-x  2 root root 4096 2009-11-18 21:14 .
drwxrwxrwx 13 root root 4096 2009-11-18 21:09 ..
-rw-r--r--  1 root root   47 2009-11-18 21:14 file1
-rw-r--r--  1 root root   47 2009-11-18 21:11 file2
ubupaha@PAHAUBUSRV:/mnt/varmistus/testi3$

Eli vaikka mun ymmärryksen mukaan --delete vipu pitäisi poistaa kohteesta tiedosto/hakemisto jos se on poistunut lähteestä niin tuolla se file2 edelleen jöllöttää...

edit: heeetkinen tarkoittaako tuo --delete vipu sitä että deletoi ne fileet mitkä eivät esiinny lähettävässä päässä vai vastaanottavassa (ilman mitään lisävipuja)... Kyllä ainakin kovasti googleamalla noilla komennoilla pitäisi file2 häipyä vastaanottavasta päästä huitsin....

Tyhmäkö?  ??? ::)
« Viimeksi muokattu: 18.11.09 - klo:22.14 kirjoittanut PaHa »

mikko_h

  • Käyttäjä
  • Viestejä: 202
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #17 : 18.11.09 - klo:22.32 »
Komento täytyy olla muodossa

rsync -avr --delete testi2/ testi3/

Tällöin file2 deletoituu hakemistosta testi3. Shell avaa *-wildcardin esittämässäsi komennossa

sudo rsync -avr --delete ./* ../testi3/

muotoon

sudo rsync -avr --delete file1 ../testi3/

jolloin operaation lähde on yksi tiedosto ja kohde hakemisto, eikä rsync tällöin pysty päättelemään, mitä pitäisi deletoida. Homma ei myöskään toimi, vaikka komennossa olisi useampi tiedosto ja kohteena hakemisto, vaan sen töytyy olla hakemistosta hakemistoon.

PaHa

  • Käyttäjä
  • Viestejä: 164
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #18 : 18.11.09 - klo:23.42 »
Nyt hiukan meni yli   ::)

Anyway mikä on siis komento jos:

Lähdehakemisto on vaikkapa /mnt/testi
Kohdehakemisto on vaikkapa / mnt/testi2

/mnt/testin alla on tiedostoja ja alihakemistoja tiedostoineen joiden haluan olevan rsync-komennolla täydellisessä syncassa. Jos hakemisto/tiedosto muuttuu/poistuu/tulee lisää niin kohteessa kaikki muuttuu lähteen mukaiseksi... Onko edes mahdollista? Sorry rautalankaa...

edit: toimii... olin vain epävarma... ::) Tämmöiselle noobille hieman huonosti dokumentoitu.. tarvitsisin esimerkkejä ja tuollaisia mainintoja vaikkapa tuosta * merkin ominaisuuksista kun ei linux vielä oikein ole hallussa...
« Viimeksi muokattu: 19.11.09 - klo:12.43 kirjoittanut PaHa »

mikko_h

  • Käyttäjä
  • Viestejä: 202
    • Profiili
Vs: SSH & rsync kyssäri
« Vastaus #19 : 20.11.09 - klo:21.03 »
Jos hakemisto/tiedosto muuttuu/poistuu/tulee lisää niin kohteessa kaikki muuttuu lähteen mukaiseksi... Onko edes mahdollista?

Toki on, ja siis ongelmakin taisi jo ratketa. Idea on siis siinä, että rsyncille täytyy nimenomaan antaa kaksi hakemistoa verrattavaksi, tiedoston vertaaminen hakemistoon ei onnistu.

Tämmöiselle noobille hieman huonosti dokumentoitu.. tarvitsisin esimerkkejä ja tuollaisia mainintoja vaikkapa tuosta * merkin ominaisuuksista kun ei linux vielä oikein ole hallussa...

Ns. wildcard-merkit * ja ? tulkitsee siis shell, eli komentotulkki, joka on nykyisissä Linuxeissa oletuksena lähes aina bash. Shell 'laajentaa' (engl. 'wildcard expansion' tai 'filename expansion') komentorivin wildcardeja sisältävät merkkijonot niitä vastaaviksi tiedostonimilistoiksi, jos mahdollista, ja antaa lopputuloksen ajettavalle ohjelmalle. Useimmat ohjelmat eivät siis itse ymmärrä wildcardeista mitään, vaan shell pureksii ne heille valmiiksi (rsync itse asiassa taitaa olla harvoja poikkeuksia, sillä sen exclude-listoihin voi laittaa wildcardeja, jotka rsyncin täytyy tulkita ilman shelliä). Dokumentaatiota voi lukea komentamalla 'info bash' ja hakemalla (Ctrl-s) sieltä 'filename expansion'.