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: