hi@all
seht ihr eine möglichkeit mit nem cron- job oder ähnlichem ein automatisches internetupdate für antivir in bestimmten zeitabständen zu realisieren, als bedingung wäre nur abzufragen ob ne internetverbindung besteht also z.B. soll er alle 14 tage das antivir updaten und zwar dann wenn ich an diesem tag das erste mal mit dem internet verbunden bin, für ideen danke ich euch im vorraus.
Fat_fox_no log
automatisches Update
Das Skript hier verwende ich fuer um Internet updates per cron zu triggern sobald ich mich das erste mal am Tag einwaehle.
-----------------------
#!/bin/sh
TMPFILE="/tmp/internet.tmp"
TODAY=`date +%m%d`
INETISUP=`ifconfig -a | grep -e '^ppp' | wc -l`
LASTCONNECT=0
[ -e ${TMPFILE} ] && LASTCONNECT=`cat ${TMPFILE}`
if [ $INETISUP -eq 1 -a $TODAY -gt $LASTCONNECT ] ; then
echo $TODAY > ${TMPFILE}
echo "Updating Signature Files..."
## hier das update kommando rein
fi
-----------------------
-----------------------
#!/bin/sh
TMPFILE="/tmp/internet.tmp"
TODAY=`date +%m%d`
INETISUP=`ifconfig -a | grep -e '^ppp' | wc -l`
LASTCONNECT=0
[ -e ${TMPFILE} ] && LASTCONNECT=`cat ${TMPFILE}`
if [ $INETISUP -eq 1 -a $TODAY -gt $LASTCONNECT ] ; then
echo $TODAY > ${TMPFILE}
echo "Updating Signature Files..."
## hier das update kommando rein
fi
-----------------------
erstmal besten dank,
könntest du mir vieleicht noch erläutern was das script genau tut, ich bin nemich leider noch am anfang mit linux im allgemeinen und der bash im besonderen und wenn ich deine zeit noch ein wenig mehr strapazieren darf verätst du mir vieleicht auch noch wie ich das ganze dann als cron-job zum laufen bekomme, ich hatte mich nemich etwas belesen und dabei rausgefunden das es sowas wie crons gibt aber mich mit der materie auch noch nicht weiter auseinander gesetzt (weil das samba vorerst wichtiger war *g*)
könntest du mir vieleicht noch erläutern was das script genau tut, ich bin nemich leider noch am anfang mit linux im allgemeinen und der bash im besonderen und wenn ich deine zeit noch ein wenig mehr strapazieren darf verätst du mir vieleicht auch noch wie ich das ganze dann als cron-job zum laufen bekomme, ich hatte mich nemich etwas belesen und dabei rausgefunden das es sowas wie crons gibt aber mich mit der materie auch noch nicht weiter auseinander gesetzt (weil das samba vorerst wichtiger war *g*)
Hi,
---
TMPFILE="/tmp/internet.tmp"
---
Dies ist das temporaere File, in dem der Tag der letzten Einwahl gespeichert wird.
---
TODAY=`date +%Y%m%d`
---
Die Variable TODAY enthaelt jetzt das aktuelle Datum im Format YYYYMMDD - also z.B. 20050413.
---
INETISUP=`ifconfig -a | grep -e '^ppp' | wc -l`
---
Prueft ob es ein "ppp" interface gibt. INETISUP enthaelt dann entweder 0 oder eine Zahl groesser gleich 1, falls du 1 oder mehrere PPP Verbindungen am laufen hast.
---
LASTCONNECT=0
[ -e ${TMPFILE} ] && LASTCONNECT=`cat ${TMPFILE}`
---
Wenn unser TMPFILE existiert, dann wird daraus der Tag der letzten Einwahl gelesen. Ansonsten ist LASTCONNECT 0.
---
if [ $INETISUP -eq 1 -a $TODAY -gt $LASTCONNECT ] ; then
echo $TODAY > ${TMPFILE}
fi
---
Wenn ein PPP interface UP ist, also die Internetverbindung steht und der heutige Tag groesser als der Tag des letzten Connects ist, dann aktualisiere unser TMPFILE mit dem neuen Datum. Hier muesste dann dein Update Kommando mit rein.
Wenn du mehrere PPP Verbindungen hast, dann muesste es eigentlich
if [ $INETISUP -ne 0 -a $TODAY -gt $LASTCONNECT ] ; then
heissen, da ja dann mehr als 1 PPP interface up ist.
Gruss,
Alex
---
TMPFILE="/tmp/internet.tmp"
---
Dies ist das temporaere File, in dem der Tag der letzten Einwahl gespeichert wird.
---
TODAY=`date +%Y%m%d`
---
Die Variable TODAY enthaelt jetzt das aktuelle Datum im Format YYYYMMDD - also z.B. 20050413.
---
INETISUP=`ifconfig -a | grep -e '^ppp' | wc -l`
---
Prueft ob es ein "ppp" interface gibt. INETISUP enthaelt dann entweder 0 oder eine Zahl groesser gleich 1, falls du 1 oder mehrere PPP Verbindungen am laufen hast.
---
LASTCONNECT=0
[ -e ${TMPFILE} ] && LASTCONNECT=`cat ${TMPFILE}`
---
Wenn unser TMPFILE existiert, dann wird daraus der Tag der letzten Einwahl gelesen. Ansonsten ist LASTCONNECT 0.
---
if [ $INETISUP -eq 1 -a $TODAY -gt $LASTCONNECT ] ; then
echo $TODAY > ${TMPFILE}
fi
---
Wenn ein PPP interface UP ist, also die Internetverbindung steht und der heutige Tag groesser als der Tag des letzten Connects ist, dann aktualisiere unser TMPFILE mit dem neuen Datum. Hier muesste dann dein Update Kommando mit rein.
Wenn du mehrere PPP Verbindungen hast, dann muesste es eigentlich
if [ $INETISUP -ne 0 -a $TODAY -gt $LASTCONNECT ] ; then
heissen, da ja dann mehr als 1 PPP interface up ist.
Gruss,
Alex
Hier noch der crontab Teil. Hatte vorhin keine Zeit.
Mit 'crontab -e' kannst du deine crontab aus der shell raus bearbeiten. Dabei wird der voreingestellte Editor gestarten. Du kannst aber auch mit 'crontab -l > mycrontab' deine aktuelle crontab in eine datei reinschreiben lassen. Diese Datei kannste dann mit jedem Editor bearbeiten.
In das File kommt dann ein Eintrag nach folgendem Format:
# minute hour monthday month weekday command
Willst du einen Eintrag nicht spezifizieren, dann kommt einfach ein '*' rein.
Zum Beispiel:
Alle x Minuten - Takt angeben z.B. alle 5 Minuten:
*/5 * * * * /pfad/zum/script
Stuendlich - Minute angeben z.B. 30:
30 * * * * /pfad/zum/script
Taeglich - Uhrzeit angeben z.b. 01:30:
30 1 * * */pfad/zum/script
Monatlich - Tag des Monats + Uhrzeit z.B. Jeden 1. um 03:00:
0 3 1 * * /pfad/zum/script
usw. Man kann das immer genauer angeben. Einfach mal in die manpage schauen.
Wenn du alles fertig editiert hast, kannst du deine neue crontab scharf schalten indem du einfach 'crontab mycrontab' eingbist. 'mycrontab' muss halt das File mit all deinen Eintraegen sein.
Gruss,
Alex
Mit 'crontab -e' kannst du deine crontab aus der shell raus bearbeiten. Dabei wird der voreingestellte Editor gestarten. Du kannst aber auch mit 'crontab -l > mycrontab' deine aktuelle crontab in eine datei reinschreiben lassen. Diese Datei kannste dann mit jedem Editor bearbeiten.
In das File kommt dann ein Eintrag nach folgendem Format:
# minute hour monthday month weekday command
Willst du einen Eintrag nicht spezifizieren, dann kommt einfach ein '*' rein.
Zum Beispiel:
Alle x Minuten - Takt angeben z.B. alle 5 Minuten:
*/5 * * * * /pfad/zum/script
Stuendlich - Minute angeben z.B. 30:
30 * * * * /pfad/zum/script
Taeglich - Uhrzeit angeben z.b. 01:30:
30 1 * * */pfad/zum/script
Monatlich - Tag des Monats + Uhrzeit z.B. Jeden 1. um 03:00:
0 3 1 * * /pfad/zum/script
usw. Man kann das immer genauer angeben. Einfach mal in die manpage schauen.
Wenn du alles fertig editiert hast, kannst du deine neue crontab scharf schalten indem du einfach 'crontab mycrontab' eingbist. 'mycrontab' muss halt das File mit all deinen Eintraegen sein.
Gruss,
Alex