pomoc!!! shell skript....kontrola prihlasovania v Ubuntu

Programovacie jazyky, rady, poradňa...
zufan
Novice
Novice
Príspevky: 1
Registrovaný: 04 dec 2008, 10:18

pomoc!!! shell skript....kontrola prihlasovania v Ubuntu

Príspevok od používateľa zufan »

Kód: Vybrať všetko

Syntaxe: 
sleduj [n] uživatel 
n - počet vteřin 
uživatel - uživatelské jméno 
Funkce: 
v zadaném časovém intervalu (standardně každých 60 vteřin) se testuje, zda se přihlásil zadaný uživatel. Není-li uživatelské jméno zadáno, vypíše se chybová zpráva a procedura je ukončena. Proceduru spouštějte jako proces na pozadí. 
[/color]


prosim potreboval by som pomoc s vytvorenim skriptu, ktory ma robit hore uvedenu ulohu.....mam to riesit cez who a test....lenze vobec neviem ako mam podmienku napisat
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

Nedavno sme robili v skole cosi podobne, ale v zadani bolo, aby pri prihlaseni usera poslalo mail na zadanu adresu, a mali tam byt aj nejake parametre.

Kód: Vybrať všetko

#!/bin/bash

while getopts ":m:bt:u:" optname
do
    case "$optname" in
      "u")
        if [ -z "$OPTARG" ]
        then 
          echo "Zadaj meno usera!"
          exit
        else
          USER="$OPTARG"
        fi
      ;;
      "m")
        if [ -z "$OPTARG" ]
        then
          echo "Zadaj mailovu adresu!" 
          exit
        else
          MAIL="$OPTARG"
        fi
      ;;
      "b")
        BEEP=true
      ;;
      "t")
        if [ "$OPTARG" -gt 0 ]
        then  
          TIME="$OPTARG"
        else
          echo "Chybny casovy interval!"
          exit
        fi
      ;;
      "?")
      echo "Neznamy parameter"
      ;;
      *)
    echo "Chyba parametrov"
    esac
done

if [ "$TIME" = "" ] || [ "$MAIL" = "" ] || [ "$USER" = "" ]
then
  echo "Pouzitie: mail -b -t 10 -u user -m [email protected]"
else
  while :;
  do
    users=$(who | awk '{print $1}')    
      for usr in $users
      do
        if [ "$usr" = "$USER" ]
        then
          if [ "$BEEP" = "true" ]
          then
            echo -en "\007"
          fi
          # je prihlaseny
          mail -s "$USER sa prihlasil" [email protected] < ./mail2 &
        fi
      done
    sleep $TIME
  done
fi
Zadanie bolo taketo:
beží na pozadí a kontroluje, či je prihlásený určený užívateľ. Ak áno, buď pošle mail s oznamom, (-m adresa), pripadne zapípa (-b), pričom interval medzi kontrolami je možné zadať (-t interval v sekundách)
Obsah mailu ma byt v subore mail2. Mozno ten skript nie je celkom dobre, ale ked som ho zhotovil, tak fungoval. Mozno ti to nejako pomoze :wink:
Napísať odpoveď