[Eisfair] dyndnsautologin 0.0.1 released

Marcus Roeckrath marcus.roeckrath at gmx.de
Fr Jul 12 11:28:34 CEST 2013


Hallo Olaf,

Marcus Roeckrath wrote:

> Meine Überlegung wäre, den cronjob viel häufiger aufzurufen, aber das dann
> ablaufende Script macht den dann zufallsgesteuert meistens nicht; bricht
> also einfach ab.
> 
> Damit es dennoch mindestens einmal im Monat aufgerufen wird, müsste man
> den letzten erfolgreichen Login in eine Datei vermerken.
> 
> Bei einem erneuten Versuch wird nun zufallsgesteuert entschieden,ob
> eingeloggt werden soll, oder nicht.
> 
> Wenn nein, erst noch eine Berechnung der Zeitspanne zwischen jetzigem
> Zeitpunkt und dem letzten Login; wenn das auf 30 zugeht - meinetwegen > 20
> Tage - dann doch einen Login unternehmen.

Hier mal meine Code-Idee; Login zufallsgesteuert aber frühestens nach 10
Tagen und erzwungener Login spätestens nach 20 Tagen.

#!/bin/bash

twentydays=1728000
tendays=864000
lastloginfile=/tmp/dyndns
# Zufallszahl zwischen 0 und 999
randomnumber=$((RANDOM % 1000))

if [ -f $lastloginfile ] ; then
  lastlogintime=`date -r $lastloginfile +%s`
  now=`date -u +%s`
# Zeitspanne zwischen Jetztzeit und letztem Login
  logintimespan=$((now - lastlogintime))
echo $now "." $lastlogintime "." $logintimespan
# Ist Zufallszahl 0
  if [ $randomnumber -eq 0 ] ; then
# Login nur wenn mindestens 10 Tage seit letztem Login verstrichen
    if [ $logintimespan -gt $tendays ] ; then
      touch $lastloginfile
# Hier Login-Code
    fi
  else
# Zwangslogin, wenn seit letztem Login mehr als 20 Tage vergangen
    if [ $logintimespan -gt $twentydays ] ; then
      touch $lastloginfile
# Hier Login-Code
    fi
  fi
else
# Zwangslogin, wenn lastloginfile nicht existiert
  touch $lastloginfile
# Hier Login-Code
fi

Das Touchen von lastloginfile sollte man wohl noch vom Erfolg des Logins
abhängig machen.

-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Eisfair