ssh-skriptiin apuja...

Skripti hakee puolen tunnin välein etäjärjestelmästä muuttuvan tiedoston ja cattaa sen paikalliseen lokiin. Toimiva:

#!/bin/ash

while true
do
for i in 20 21 37 92 102 116 118 121 134 136
do
echo "Gathering data"
date >> ./data_169.254.0.$i.log
ssh 192.168.2.$i "cat dirika/file" >> ./changelog_192.168.2.$i.log
sleep 1800
done
done

Ongelma tulee siinä että ssh-tunneli ei ehdi ilmeisesti joka hakukerralla jokaisen laitteen kanssa vakiintua, joten tuohon pitäisi ennen cattausta saada 30 sekunnin viive. Tämä ei pelitä:

ssh 192.168.2.$i "sleep 30; cat dirika/file" >> ./changelog_192.168.2.$i.log

... se luo lokin etäkoneelle. Tämä ei ole toimiva ratkaisu koska etäkoneessa on erittäin rajatusti tilaa.

Eli miten tuohon toimivaan skriptiin saisi lisättyä tarvittavan viiveen?
793
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

Jätä tunneli päälle.

Äänestä

Tuota tuli harkittua. Vaan ei ole sovelias ratkaisu... laitteet kun on asiakkaan päässä...

Äänestä
  • Entä rsync?

    Äänestä

  • gZpi kirjoitti:

    Entä rsync?

    Eip toimi rsync, kahdesta syystä.

    Ensinnäkin tarkoitus ei ole kopsata tiedostoa paikalliselle koneelle, vaan catata sen sisältö kasvavaan paikallislokiin. Toiseksi kaikki ovat embedded -laitteita, joissa on vahvasti riisuttu distro ilman mitään noin fiksuja työkaluja. Enkä pysty sitä sinne asentamaan, edes väliaikaisesti :-P

    Kiitos kuitenkin ajatuksesta :-)

    Äänestä

Mikset vain kopioi (vaikka scp:llä tai millä vaan) etäkoneelta tiedostoa lokaalille ja cattaa se sitten vastaavaan lokiin. Lopuksi hävität tilapäisen etätiedoston.

Äänestä
  • No kun enpä tullut taas ajatelleeks scp:tä :-P Sen siitä saa kun tuijottaa samaa ongelmaa liian pitkään... kiitti.

    Noin ihan ajatusleikkinä tuohon skriptinpätkään ei sit vissiin saa viivettä aikaiseksi? Voisi olla hyötyä muulloinkin...

    Äänestä

  • Tarvitsevainen kirjoitti:

    No kun enpä tullut taas ajatelleeks scp:tä :-P Sen siitä saa kun tuijottaa samaa ongelmaa liian pitkään... kiitti.

    Noin ihan ajatusleikkinä tuohon skriptinpätkään ei sit vissiin saa viivettä aikaiseksi? Voisi olla hyötyä muulloinkin...

    Eipäs toiminut. Kyseessä on /proc:sta löytyvä file a'la meminfo, eli ei sisällä mitään jos ei sitä cattaa :-(

    Joka tapauksessa "staattisten" fileiden perkaukseen soveltuu.

    Äänestä

Kommentoi aloitusta


Tarvitsevainen kirjoitti:

Skripti hakee puolen tunnin välein etäjärjestelmästä muuttuvan tiedoston ja cattaa sen paikalliseen lokiin. Toimiva:

#!/bin/ash

while true
do
for i in 20 21 37 92 102 116 118 121 134 136
do
echo "Gathering data"
date >> ./data_169.254.0.$i.log
ssh 192.168.2.$i "cat dirika/file" >> ./changelog_192.168.2.$i.log
sleep 1800
done
done

Ongelma tulee siinä että ssh-tunneli ei ehdi ilmeisesti joka hakukerralla jokaisen laitteen kanssa vakiintua, joten tuohon pitäisi ennen cattausta saada 30 sekunnin viive. Tämä ei pelitä:

ssh 192.168.2.$i "sleep 30; cat dirika/file" >> ./changelog_192.168.2.$i.log

... se luo lokin etäkoneelle. Tämä ei ole toimiva ratkaisu koska etäkoneessa on erittäin rajatusti tilaa.

Eli miten tuohon toimivaan skriptiin saisi lisättyä tarvittavan viiveen?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu