[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Logdatei um Datum ergaenzen [ddclient 3.6.2]



Moritz Lenz schrieb:
> ben wrote:
>> Wäre das nicht äquivalent zu obiger Variante?
> 
> Nein. Mit der echo-Variante wird einmal das Datum geschrieben, mit
> meiner am Anfang jeder Zeile.

Verstehe. Clever für mehrzeilige Ausgaben von ddclient. Wie gesagt, weiß
ich nicht was ddclient ausspuckt. Ob einzeilig oder mehrzeilig und
welche sonstigen Formatierungen. Im OP ist allerdings von einer
Ausgabezeile die Rede.

>> Gegenvorschlag: Ausgabe von ddclient (habe keine Ahnung, wie die
>> aussieht) in Variable speichern, prüfen, ob ein bestimmter String
>> vorkommt und wenn ja, dann formatiertes Datum und Variableninhalt ins
>> Logfile schreiben. So in dieser Art:
>>
>> ----snip----
>> DDCLIENTVAR=`ddclient`
>> echo ${DDCLIENTVAR} | grep SUCCESS && \
>>   echo `date +%Y-%m-%d ; echo ${DDCLIENTVAR}` >> ddclient.log
>> ----snip----
> 
> Gleiches wie oben: es steht nur einmal drin, und auch nicht in der
> selben Zeile. Ich weiss ja nicht, ob er was anderes als SUCCESS auch
> noch loggen möchte.

Korrekt. Es sollte auch nur als Ansatz dienen. Die exakte Formatierung
müßte dann auf die eigenen Bedürfnisse angepasst werden. Also ob Datum
in gleicher Zeile oder als Einzelzeile vor dem Logeintrag oder ...

Um meinen Vorschlag mal mehrzeilig zu machen (sorry, bin zu faul, das
alles auszuschreiben):

DDCLIENTVAR=`ddclient`
if [ DDCLIENTVAR enthält SUCCESS ] ; then
  for ZEILE in DDCLIENTVAR ; do
    echo -n DATUM >> ddclient.log
    echo ZEILE >> ddclient.log
  done
fi

Oder um es mit deinem perl-Konstrukt zu formulieren:

DDCLIENTVAR=`ddclient`
if [ DDCLIENTVAR enthält SUCCESS ] ; then
  echo DDCLIENTVAR | perl -pe 'print scalar localtime(time), " ", $_' >>
ddclient.log
fi

Oder so ähnlich ;)

Ben



Reply to: