[Eisfair] dyndnsautologin: Nach 3 Tagen neuer Login

Olaf Jaehrling eisfair at ojaehrling.de
So Feb 23 18:12:47 CET 2014


Hallo Marcus,


On 23.02.2014 18:07, Marcus Roeckrath wrote:
> Hallo Olaf,
> 
> Marcus Roeckrath wrote:
> 
>> heute hat dyndnsautologin erfolgreich einen Connect durchgeführt, aber der
>> Zeitraum für den nächsten Login ist viel zu kurz berechnet:
>>
>> /etc/init.d/dyndnsautologin status
>> DynDNSautologin is running
>> DynDNSautologin last run: Sun Feb 23 14:38:35 CET 2014
>> DynDNSautologin next run at: 26. um 13:16
> 
> Ich habe den Bug gefunden und geholfen dabei hat mir ein ähnlicher Fehler in
> einen meiner Skripte und er hängt damit zusammen, dass Zahlen mit führender
> Null in der Bash oktal interpretiert werden.
> 
> Bis 07 ging es also gut, aber 08 ist eben keine oktale Zahl, 09 auch nicht,
> bei 10 wird es dann dezimal interpretiert und es gab keinen Fehler mehr.
> 
> Hier Beispiele, die das grundsätzliche Problem zeigen:
> 
> eis #  echo $((`echo 07` % 4 +1))
> 4
> 
> eis #  echo $((`echo 08` % 4 +1))
> -bash: 08: value too great for base (error token is "08")
> 
> eis #  echo $((`echo 09` % 4 +1))
> -bash: 09: value too great for base (error token is "09")
> 
> eis #  echo $((`echo 10` % 4 +1))
> 3
> 
> Klar?
> 
> Nun die entscheidende Stelle aus Deinem Code (/etc/init.d/dyndnsautologin
> Zeile 57) für die Kommandozeile leicht verändert:
> 
> eis #  echo $((`date -d "-12 days ago" +%d`))
> 7
> 
> eis #  echo $((`date -d "-13 days ago" +%d`))
> -bash: 08: value too great for base (error token is "08")

> Nimmst Du statt +%d nun +%e als Formatierung für date geht es:
> 
> eis #  echo $((`date -d "-12 days ago" +%e`))
> 7
> 
> eis #  echo $((`date -d "-13 days ago" +%e`))
> 8
> 

Danke, ich baue es eis.

Gruß und schönes WE

Olaf



Mehr Informationen über die Mailingliste Eisfair