SFTP-siirtojen automatisointi
Asiantuntijat
Sisällysluettelo |
---|
SFTP
SFTP (Secure File Transfer Protocol) on turvallinen, salattu, SSH:n perustuva tiedonsiirtomekanismi. Huom! SFTP on eri kuin FTPS.
SFTP-palvelin vastaa oletuksena portissa 22.
SFTP-asiakassovelluksia on useita, tässä artikkelissa käsittelemme ilmaista (GPL-lisenssin alainen) WinSCP -ohjelmistoa.
Valmistelut
Sinulla tulee olla tiedossa:
- SFTP-palvelimen ip/nimi (käytämme esimerkissämme osoitetta ssh.example.com)
- SFTP-palvelimen käyttäjätunnus (esimerkissä sshuser)
- SFTP-palvelimen salasana (esimerkissä sshpassword)
- SFTP-palvelimen portti (esimerkissä oletus 22)
Hakemisto, mihin/mistä tiedostot siirretään (esimerkissä C:\Siirto)
Tiedostojen maski (esim.xml)
WinSCP
WinSCP jakautuu kahteen ohjelmistoon:
- GUI -graafinen käyttöliittymä
- CLI -komentorivipohjainen käyttöliittymä
Käytämme asennuksessa molempia käyttöliittymiä: graafista käyttöliittymää yhteyden testaamiseen ja automatisointiin komentorivipohjaista.
Asennus
Asenna WinSCP joko suoraan http://winscp.net/eng/download.php tai Niniten avulla http://ninite.com/winscp .
WinSCP asentuu oletuksena C:\Program Files(x86)\WinSCP -hakemistoon.
Yhteysmääritysten tallennus (GUI)
- Avaa WinSCP (Käynnistä-valikosta löytyy)
- Syötä host name, portti, username ja password:
Tiedosto__winscp_aloitusruutu.png - Paina Save ja anna yhteydelle kuvaava nimi. Ruksaa myös 'Save password' jotta (esimerkissä sshpalvelin)
Tiedosto__winscp_palvelintallennus.png - Paina Login ja ota yhteys palvelimeen
- Ensimmäisenä ohjelmisto kysyy, onko palvelimen fingerprint oikein (voit varmistaa tämän palvelimen ylläpitäjältä). Mikäli fingerprint on oikein, tallenna se muistiin painamalla Yes.
- Mikäli palvelinosoite, käyttäjätunnus ja salasana olivat oikein, yhteys muodostuu
Tiedosto__winscp_yhteys_muodostettu.png- Huomaa, että esimerkissä yhteys muodostui palvelimeen, asettaen hakemiston /a20014:ksi
- Yhteysmääritykset ovat nyt tallennettu, tämä osuus on valmis, voit sulkea winscp:n
Komentorivipohjainen käyttöliittymä
Voit ohjata WinSCP:tä komentorivipohjaisesti, tarkka ohjeistus löytyy http://winscp.net/eng/docs/commandline
Komentoriviohjelmisto löytyy oletuksena C:\Program Files (x86)\WinSCP\winscp.com
Yhteyden muodostaminen (CLI)
- Käynnistä komentoriviohjelmisto "C:\Program Files (x86)\WinSCP\winscp.com"
- : winscp> -kehotus ilmestyy
- Kirjoita open sshpalvelinENTER
- :winscp> open sshpalvelin
- :Searching for host...
- :Connecting to host...
- :Authenticating...
- :Using username "sshuser".
- :Authenticating with pre-entered password.
- :Authenticated.
- :Starting the session...
- :Reading remote directory...
- :Session started.
- :Active session: 1 sshpalvelin
- :winscp>
- Yhteys muodostui, voit poistua komennolla exit
Skriptien kirjoittaminen
WinSCP:n CLI-käyttöliittymää on mahdollista ohjata skriptein.
Skriptiesimerkki: Tiedoston hakeminen palvelimelta
open sshpalvelin option confirm off cd /a20012/lataushakemisto get -delete tiedosto*.xml C:\Siirto exit
- Komennot tarkoittavat seuraavaa:
- open sshpalvelin
- Avaa yhteyden palvelimeen sshpalvelin
- option confirm off
- Poistaa varmistukset ("Haluatko ladata tiedoston" -tyyppiset) käytöstä
- cd /a20012/lataushakemisto
- Siirtyy siihen hakemistoon (palvelimella) mistä tiedosto halutaan ladata
*get -delete tiedosto.xml C:\Siirto
- Siirtyy siihen hakemistoon (palvelimella) mistä tiedosto halutaan ladata
- Hakee kaikki tiedostot, jotka sopivat maskiin tiedosto.xml ja poistaa tiedostot onnistuneen haun jälkeen
- exit
- Poistuu WinSCP -ohjelmasta (ja sulkee yhteyden)
- open sshpalvelin
Skriptiesimerkki: Tiedoston vieminen palvelimelle
open sshpalvelin option confirm off cd /a20012/tallennushakemisto put -delete C:\Siirto\tilaus*.xml exit
- Komennot tarkoittavat seuraavaa:
- open sshpalvelin
- Avaa yhteyden palvelimeen sshpalvelin
- option confirm off
- Poistaa varmistukset ("Haluatko ladata tiedoston" -tyyppiset) käytöstä
- cd /a20012/lataushakemisto
- Siirtyy siihen hakemistoon (palvelimella) mistä tiedosto halutaan ladata
*put -delete C:\Siirto\tilaus.xml
- Siirtyy siihen hakemistoon (palvelimella) mistä tiedosto halutaan ladata
- Vie palvelimelle kaikki tiedostot, jotka ovat hakemistossa C:\Siirto ja sopivat maskiin tilaus.xml ja poistaa tiedostot onnistuneen haun jälkeen
- exit
- Poistuu WinSCP -ohjelmasta (ja sulkee yhteyden)
- open sshpalvelin
Skriptien automatisoiminen
WinSCP tallentaa oletuksena yhteysasetukset rekisteriin. Tarkoittaen käytännössä sitä, että asetukset ovat vain sen käyttäjän käytettävissä, kuka ne on alunperin tallentanut.
Asetukset voidaan kuitenkin viedä ini-tiedostoon ja komentorivipohjainen työkalu voi lukea asetukset suoraan INI-tiedostosta.
- Tallenna skripti esimerkiksi tiedostoon C:\Siirto\scp\lataus.scp
- Tee komentojonotiedosto (esimerkiksi C:\Siirto\cmd\lataus.cmd, joka käynnistää latauksen ja tekee lokia määriteltyyn tiedostoon:
- :"C:\Program Files (x86)\WinSCP\winscp.com" /script=C:\Siirto\scp\lataus.scp /log=C:\Siirto\scp\lataus.log
- Mikäli käytät INI-tiedostoa asetusten tallennuspaikkana, määritä INI seuraavasti:
- :"C:\Program Files (x86)\WinSCP\winscp.com" /script=C:\Siirto\scp\lataus.scp /log=C:\Siirto\scp\lataus.log /ini=C:\Siirto\scp\lataus.ini
- Testaa komentojonon toimivuus (aja C:\Siirto\cmd\lataus.cmd)
Huom! Voit lisätä esimerkiksi tilauksen sisäänluvun tai muita toimintoja latauskomentojonotiedostoon.
Asetusten tallentaminen INI-tiedostoon
- Avaa WinSCP (GUI)
- Pääruudussa valitse Tools -> Export/Backup Configuration.. ja tallenna ini-tiedosto esim nimellä C:\Siirto\scp\lataus.ini