From 168639ab5ae9e369a4a8fbeee12c52846ba35633 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Thu, 4 Oct 2012 01:04:21 +0200 Subject: add file for cron.d --- etc/update-motd.cron | 2 ++ sbin/update-motd | 39 +++++++++++++++++++++++++++++++++++++++ update-motd | 39 --------------------------------------- 3 files changed, 41 insertions(+), 39 deletions(-) create mode 100644 etc/update-motd.cron create mode 100755 sbin/update-motd delete mode 100755 update-motd diff --git a/etc/update-motd.cron b/etc/update-motd.cron new file mode 100644 index 0000000..b6cb06a --- /dev/null +++ b/etc/update-motd.cron @@ -0,0 +1,2 @@ +# update /etc/motd if needed with data from /var/log/changes +* * * * * root /usr/bin/lockrun --lockfile=/var/lock/update-motd.lockrun -- /usr/local/bin/update-motd diff --git a/sbin/update-motd b/sbin/update-motd new file mode 100755 index 0000000..50748d0 --- /dev/null +++ b/sbin/update-motd @@ -0,0 +1,39 @@ +#!/bin/bash + +# Ueberpruefung und ueberhaupt ein Update von der motd notwenig ist: +[ /var/log/changes -nt /etc/motd ] || \ +[ /etc/motd.head -nt /etc/motd ] || \ +[ /etc/motd.tail -nt /etc/motd ] || \ +exit 0 + +# letzte 20 Zeilen in /var/log/changes ermitteln und +# ab diesen dann die naechste Blockgrenze ermitteln +START="" +COUNT=19 + +while [ -z "${START}" -a "${COUNT}" -le 30 ]; do + COUNT="$((${COUNT}+1))" + START="$(tail -n "${COUNT}" /var/log/changes | head -n 1 | grep -o '^ *---')" +done + +# temporaere Datei erstellen, +# damit die motd in einem Schritt geaendert werden kann +TMPFILE="$(mktemp -t motd.XXXXXXXXXX)" + +# falls vorhanden wird der motd die /etc/motd.head vorrangestellt +[ -r /etc/motd.head ] && cat /etc/motd.head > "${TMPFILE}" + +# Aenderungen aus der /var/log/changes in die motd schreiben +tail -n "${COUNT}" /var/log/changes >> "${TMPFILE}" + +# falls vorhanden wird an die motd die /etc/motd.tail angehaengt +[ -r /etc/motd.tail ] && cat /etc/motd.tail >> ${TMPFILE} + +# motd jetzt richtig updaten +chmod 0644 "${TMPFILE}" +mv -f "${TMPFILE}" /etc/motd + +# update timestamp +touch -c /etc/motd /var/log/changes /etc/motd.tail /etc/motd.head + +exit 0 diff --git a/update-motd b/update-motd deleted file mode 100755 index 50748d0..0000000 --- a/update-motd +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -# Ueberpruefung und ueberhaupt ein Update von der motd notwenig ist: -[ /var/log/changes -nt /etc/motd ] || \ -[ /etc/motd.head -nt /etc/motd ] || \ -[ /etc/motd.tail -nt /etc/motd ] || \ -exit 0 - -# letzte 20 Zeilen in /var/log/changes ermitteln und -# ab diesen dann die naechste Blockgrenze ermitteln -START="" -COUNT=19 - -while [ -z "${START}" -a "${COUNT}" -le 30 ]; do - COUNT="$((${COUNT}+1))" - START="$(tail -n "${COUNT}" /var/log/changes | head -n 1 | grep -o '^ *---')" -done - -# temporaere Datei erstellen, -# damit die motd in einem Schritt geaendert werden kann -TMPFILE="$(mktemp -t motd.XXXXXXXXXX)" - -# falls vorhanden wird der motd die /etc/motd.head vorrangestellt -[ -r /etc/motd.head ] && cat /etc/motd.head > "${TMPFILE}" - -# Aenderungen aus der /var/log/changes in die motd schreiben -tail -n "${COUNT}" /var/log/changes >> "${TMPFILE}" - -# falls vorhanden wird an die motd die /etc/motd.tail angehaengt -[ -r /etc/motd.tail ] && cat /etc/motd.tail >> ${TMPFILE} - -# motd jetzt richtig updaten -chmod 0644 "${TMPFILE}" -mv -f "${TMPFILE}" /etc/motd - -# update timestamp -touch -c /etc/motd /var/log/changes /etc/motd.tail /etc/motd.head - -exit 0 -- cgit v1.2.3-1-g7c22