Kirjoittaja Aihe: scp:n käyttö crontabin ajamassa scriptissä  (Luettu 1578 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
scp:n käyttö crontabin ajamassa scriptissä
« : 30.08.21 - klo:23.20 »
ONGELMA RATKESI SAMAN TIEN. Minulla oli kirjoitusvirhe runuser-komennossa.
Jätän tämän kuitenkin tänne varoittavaksi esimerkiksi ;)

crontab kutsuu lyhyttä scriptiä, joka ensin muokkaa hieman dataa ja paiskaa sen sitten serverille, jossa se liitetään (append) lokitiedoston loppuun.
Scripti kutsuu wiringop:n ohjelmia, jotka vaativat rootin oikeudet
Scp käyttää käyttäjätunnusta, joka on sama molemmissa koneissa.
SCP:n tunnistautumisessa käytetään public keytä.
SCP-komento toimii ilman salasanaa, jos sitä ajetaan käyttäjän oikeuksin.
Kun scriptiä ajetaan roottina, ohjelma kysyy käyttäjän salasanaa.
Scriptiä on pakko ajaa roottina, koska LCDtulosta sisältää kutsuja wiringop ohjelmiin.

Miten bash scriptin sisällä saisi tuon scp-rivin ajettua ilman salasanakyselyä ?

Tiivistelmä scriptistä:
Koodia: [Valitse]
#!/bin/bash
declare -a arr
NowC=$(date +"%H:%M")
IP=$(hostname -I)
IP=$(echo -n "${IP//[[:space:]]/}")
while true; do
   IFS="," read -r osoite line < /dev/ttyACM0
   if [[ $osoite == '$GPRMC' ]]; then
       uline=${line%?}
       set -f; IFS=','; arr=($uline)
      break
   fi
done
$(/home/bin/wiringop/i2cLCD/LCDtulosta clr $NowC@1,10 "LAT: ${arr[2]}"@2,1 $IP@4,1)
runuser -l -c "echo $uline | ssh luuseri@omaserveri 'cat - >> /home/luuseri/Sijainti/vaunu.txt' "

Tuo LCDtulosta on omatekemä C-kielinen ohjelma, joka tulostaa annetut merkkijonot LCD:lle annettuihin kohtiin. Ohjelma kutsuu wiringop -kirjastoja. Koneena on OrangePi Lite.
« Viimeksi muokattu: 30.08.21 - klo:23.29 kirjoittanut Mistofelees »