9.5 Automaattinen tulostus¶
9.5 Automaattinen tulostus¶
Sekä kirjoitin- että tiedostotulostus voidaan käynnistää automaattisena. Tämä voi tapahtua joko käyttäen parametreja tai tulostustoimintojen valikkojen kautta ohjelman ollessa käynnissä.
9.5.1 Html-tiedostojen automaattinen tulostaminen¶
Viestissä on automaattinen tulostus yleisimmin toteutettava niin, että kunkin osuuden tulokset tulostetaan omaan tiedostoonsa ja mahdolliset väliaikapisteet myös kukin omaan tiedostoonsa. Tämä voidaan toteuttaa käyettäen apuna tiedostoa autofile.lst, jossa luetellaan kaikki pisteet, jotka halutaan tulostaa. Tiedoston kikin rivi on muotoa
missä vaihto/maali ilmaistaan pisteen numerolla 0.
Ohjelma lisää muodostettavien html-tiedostojen nimirunkoon täsmennyksen _sarja_osuus_piste.html.
Tiedoston nimirunko tied.nimi voidaan antaa parametrilla
missä tied.nimi voi sisältää myös hakemistopolun ja tulostusväli ilmoitetaan sekunteina. Tämä parametri käynnistää myös automaattisen tulostuksen heti ohjelman käynnistyttyä. Menettely, missä automaattiset tulosteet ohjataan hakemistopolun avulla omaan kansioonsa selkeyttää toimintaa.
9.5.2 Tiedostojen siirto palvelimelle¶
Kun html-tiedosto on kirjoitettu, voidaan se lähettää automaattisesti www-palvelimelle ulkoisen komentotiedoston avulla. Ohjelma käynnistää tulostuksen jälkeen parametrilla
määritellyn komennon. Komennon tulee toimia käyttäjän puuttumatta eikä se saa kirjoittaa näytölle (stdout ohjataan automaattisesti näkymättömiin).
Aiemmissa versioissa ohjelmassa oli myös sisäänrakennettu FTP-/SFTP-siirto,
joka määriteltiin Tiedostopalvelimen määritykset -kaavakkeella ja
tallennettiin tiedostoon AutoJakelu.xml, sekä tätä vastaava
AUTOJAKELU-käynnistysparametri. Toiminto on poistettu (se edellytti
kaupallista lisäosaa) ja korvautuu nyt tällä KOMENTO=-reitillä.
Suositeltu toteutus: rsync + SSH¶
Nykyaikainen ja tietoturvallinen tapa siirtää tulostiedostot on rsync
SSH-yhteyden yli. rsync siirtää vain muuttuneet tiedostot, ja
--delay-updates-lippu vaihtaa yksittäiset tiedostot väliaikanimistä
lopullisiin nimiin vasta siirron lopuksi. Näin katsojat eivät normaalisti
näe puolivalmista html-tiedostoa. SSH:n julkisen avaimen tunnistus korvaa
salasanan, joten siirto sopii automaattiseen ajoon.
Esivaatimukset: Windows 10/11, WSL2 + Ubuntu (asennus wsl --install
PowerShellissä järjestelmänvalvojana) ja SSH-pääsy kohdepalvelimelle.
Luo avain ja kopioi se palvelimelle WSL-terminaalista:
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519_kisa
ssh-copy-id -i ~/.ssh/id_ed25519_kisa.pub user@kisapalvelin.fi
Salafraasi on jätettävä tyhjäksi, jotta siirto onnistuu ilman käyttäjän toimenpiteitä.
Luo komentotiedosto, jonka tulospalveluohjelma käynnistää. Tallenna se
muualle kuin julkaistavaan html-hakemistoon, esim. nimellä
C:\kisa\siirto\siirto.cmd:
@echo off
set LOG=C:\kisa\siirto\siirto.log
wsl -- rsync -a --delete-after --delay-updates ^
-e "ssh -i /home/KÄYTTÄJÄ/.ssh/id_ed25519_kisa -o StrictHostKeyChecking=accept-new -o ConnectTimeout=10" ^
/mnt/c/kisa/www/ ^
user@kisapalvelin.fi:/var/www/html/kisa/ ^
>> "%LOG%" 2>&1
exit /b %ERRORLEVEL%
Windowsin polku C:\kisa\www\ näkyy WSL:ssä muodossa /mnt/c/kisa/www/.
ConnectTimeout=10 estää komentoa jäämästä roikkumaan verkkokatkon
tullessa. Pidä siirto.cmd ja siirto.log eri hakemistossa kuin
julkaistavat html-tiedostot, jotta niitä ei peilata palvelimelle.
Kytke komento tulospalveluohjelmaan konfiguraatiotiedostossa:
Jos WSL:ää ei voi asentaa, sama toteutuu Windowsin omalla OpenSSH-clientilla
ja erikseen asennetulla rsync-paketilla (cwRsync, MSYS2). Tällöin
rsync.exe:tä kutsutaan suoraan ja polut ovat Windows-muodossa.