Kansion kopiointi Win10 => Linux (WSL + Rsync)

25.02.2018
Windows Linux

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