Tämä juttu käy läpi miten Rsync ohjelmalla voi siirtää kansion Windows 10 koneesta Linux palvelimelle.
WSL
Windows 10:een on saatavilla WSL (Windows Subsystem for Linux) ohjelmisto joka mahdollistaa Linux komentotulin (bash) ajamisen Windows:ssa. WSL mahdollistaa Rsync ohjelman käytön Windows 10 koneessa.
Linux komentotulkin (bash) saa käyntiin bash
komennolla kun WSL on asennettu.
C:\> bash
/mnt/c/$
Rsync
Rsync ohjelmalla voi kopioida paikallisen public -nimisen kansion
sisällön (hakemistoineen) etäkoneen kansioon /var/www/html alla olevasti.
Parametri -r
käskyssä tarkoittaa rekursiivista kopiointia. (Huom. lue koko
juttu loppuun ennen suorittamista.).
$ rsync -r public/ kayttaja@palvelin.fi:/var/www/html
Parametrilla -z
ohjelman saa pakkaamaan tiedostot siirron ajaksi ja
parametrilla -v
ohjelman saa näyttämään siirrettävien tiedostojen nimet.
Parametrilla -e ssh
ohjelman saa käyttämään siirrossa suojattua SSH yhteyttä.
$ rsync -rzv -e ssh public/ kayttaja@palvelin.fi:/var/www/html
Parametrilla --delete
ohjelman saa poistamaan palvelimen hakemistosta
ne tiedostot jotka eivät esiinny paikallisen koneen hakemistossa. Tämän
avulla on mahdollista pitää palvelimen hakemisto ajantasalla, paikallisen
hakemiston kanssa.
$ rsync -rzv --delete -e ssh public/ kayttaja@palvelin.fi:/var/www/html
Kopioitaville tiedostoille ja hakemistoille annettavat oikeudet voi
määritellä -chmod=
parametrin avulla. Parametrin -p
avulla voi
määrittää oikeuksien siirtyvän myös silloin kun hakemisto/tiedosto on
jo valmiiksi palvelimella.
Esimerkiksi jos kopioinnin yhteydessä hakemistoille haluaa antaa oikeuden
rwxrwxr-x
ja tiedostoille oikeuden rw-rw-r--
, voi sen tehdä:
$ rsync -rpzv --delete --chmod=Du=rwx,Dg=rwx,Do=rx,Fu=rw,Fg=rw,Fo=r -e ssh public/ kayttaja@palvelin.fi:/var/www/html
Parametrilla -c
ohjelman saa laskemaan tarkistus summan paikallisen ja etäkoneen
tiedostoista, ja jättämään siirtämättä ne tiedostot joissa tarkistus
summat vastaavat toisiaan (tämä nopeuttaa siirtoa huomattavasti silloin
kun vain muutama tiedosto on muuttunut).
$ rsync -rcpzv --delete --chmod=Du=rwx,Dg=rwx,Do=rx,Fu=rw,Fg=rw,Fo=r -e ssh public/ kayttaja@palvelin.fi:/var/www/html