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?
#!/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?
Vastaukset 7
Vanhimmat
Jätä tunneli päälle.
Tuota tuli harkittua. Vaan ei ole sovelias ratkaisu... laitteet kun on asiakkaan päässä...
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 :-)
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.
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.