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)

  1. Avaa WinSCP (Käynnistä-valikosta löytyy)
  2. Syötä host name, portti, username ja password:
    Tiedosto__winscp_aloitusruutu.png
  3. Paina Save ja anna yhteydelle kuvaava nimi. Ruksaa myös 'Save password' jotta (esimerkissä sshpalvelin)
    Tiedosto__winscp_palvelintallennus.png
  4. Paina Login ja ota yhteys palvelimeen
  5. 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.
  6. 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
  7. 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)

  1. Käynnistä komentoriviohjelmisto "C:\Program Files (x86)\WinSCP\winscp.com"
  2. : winscp> -kehotus ilmestyy
  3. Kirjoita open sshpalvelinENTER
  4. :winscp> open sshpalvelin
  5. :Searching for host...
  6. :Connecting to host...
  7. :Authenticating...
  8. :Using username "sshuser".
  9. :Authenticating with pre-entered password.
  10. :Authenticated.
  11. :Starting the session...
  12. :Reading remote directory...
  13. :Session started.
  14. :Active session: 1 sshpalvelin
  15. :winscp>
  16. 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
    • Hakee kaikki tiedostot, jotka sopivat maskiin tiedosto.xml ja poistaa tiedostot onnistuneen haun jälkeen
    • exit
      • Poistuu WinSCP -ohjelmasta (ja sulkee yhteyden)

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
    • 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)

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.

  1. Tallenna skripti esimerkiksi tiedostoon C:\Siirto\scp\lataus.scp
  2. Tee komentojonotiedosto (esimerkiksi C:\Siirto\cmd\lataus.cmd, joka käynnistää latauksen ja tekee lokia määriteltyyn tiedostoon:
  3. :"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:
  4. :"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
  5. 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

  1. Avaa WinSCP (GUI)
  2. Pääruudussa valitse Tools -> Export/Backup Configuration.. ja tallenna ini-tiedosto esim nimellä C:\Siirto\scp\lataus.ini