Script funktioniert mit cron nicht mehr?
Script funktioniert mit cron nicht mehr?
Hallo,
ich habe ein kleines Script geschrieben um die Virus Patterndatei immer auf dem neusten Stand zu halten. Wenn ich es normal in der Shell ausführe klappt es wunderbar. Wenn ich es allerdings mit Cron alle 6 Stunden automatisch starte funktioniert es nicht mehr.
Woran kann das liegen? Was macht Cron anders?
eingetragen hab ichs so:
1 */6 * * * root /etc/hhp/scripts/patternupdate.sh
Danke für Hilfe!
ich habe ein kleines Script geschrieben um die Virus Patterndatei immer auf dem neusten Stand zu halten. Wenn ich es normal in der Shell ausführe klappt es wunderbar. Wenn ich es allerdings mit Cron alle 6 Stunden automatisch starte funktioniert es nicht mehr.
Woran kann das liegen? Was macht Cron anders?
eingetragen hab ichs so:
1 */6 * * * root /etc/hhp/scripts/patternupdate.sh
Danke für Hilfe!
- feltel
- Webmaster
- Beiträge: 10476
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Fehlender Zeilenumbruch am Ende der crontab-Datei? Siehe auch "man crontab", Sektion BUGS.
debianforum.de unterstützen? Hier! | debianforum.de Verhaltensregeln | Bitte keine Supportanfragen per PM
aha!
jetzt will es den script wenigstens schonmal starten!
aber irgendwie klappt das wohl nicht ich bekomme die Meldung
/bin/sh: /etc/hhp/scripts/patternupdate.sh: cannot execute binary file
Im Script befinden sich ausschließlich relatieve pfade. Das muss aber doch auch so oda nich?
danke für hilfe!
jetzt will es den script wenigstens schonmal starten!
aber irgendwie klappt das wohl nicht ich bekomme die Meldung
/bin/sh: /etc/hhp/scripts/patternupdate.sh: cannot execute binary file
Im Script befinden sich ausschließlich relatieve pfade. Das muss aber doch auch so oda nich?
danke für hilfe!
Dies zumindest ist ein konkreter Pfad. Relativ wäre z.B.:Giskard hat geschrieben:Code: Alles auswählen
/bin/sh: /etc/hhp/scripts/patternupdate.sh: cannot execute binary file
Code: Alles auswählen
../../scripts/patternupdate.sh
Deine konkreten Pfade sind also richtig.
Was jetzt die Fehlermeldung besagt, kann ich auch nicht genau sagen. Ist die patternupdate.sh denn ein Bash-Skript? Er meint ja, es wäre eine Binary-Datei, also ein ausführbares, kompiliertes Programm...
- blackm
- Moderator und Co-Admin
- Beiträge: 5921
- Registriert: 02.06.2002 15:03:17
- Lizenz eigener Beiträge: MIT Lizenz
Das Script kannst du aber normal aus der Konsole ausfuehren? Hast du es in dem crontab mal mit der bash als Shell versucht...ist so der einzigste Unterschied der mir erstmal auffaellt...
by, Martin
by, Martin
Schöne Grüße
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
- blackm
- Moderator und Co-Admin
- Beiträge: 5921
- Registriert: 02.06.2002 15:03:17
- Lizenz eigener Beiträge: MIT Lizenz
Na in die erste Zeile einfach schreiben.
Code: Alles auswählen
#! /bin/bash
Schöne Grüße
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
- blackm
- Moderator und Co-Admin
- Beiträge: 5921
- Registriert: 02.06.2002 15:03:17
- Lizenz eigener Beiträge: MIT Lizenz
Hast du da nicht zu stehen? Falls nicht versuch es mal mit folgender Zeile in cron
by, Martin
Code: Alles auswählen
#! /bin/sh
Code: Alles auswählen
1 */6 * * * root /bin/bash /etc/hhp/scripts/patternupdate.sh
Schöne Grüße
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
vieleicht hat die Datei durch irgendwelche Kopieraktionen die X flags nicht mehr.
Probier doch mal
oder poste mal das Skript, wenn es nicht zu lang ist. Vieleicht ist da ein Bock drin(absolute Pfade etc.) .
Probier doch mal
Code: Alles auswählen
chmod +x patternupdate.sh
Zuletzt geändert von GaRdoHq am 08.04.2004 16:36:46, insgesamt 1-mal geändert.
Open your mind, use open source
vileicht wird die Fehlermedung
Poste doch mal das Skript.
aus dem sKript geschmissen. Rufst du daraus vieleicht ein binary auf in dem der absolute Pfad nicht past? Wenn du es manuell aufrufst und es funtzt dann könnte das daran ligen das du dich gerade im richtigen Verzeichniss befindest.cannot execute binary file
Poste doch mal das Skript.
Open your mind, use open source
So, da bin ich wieder!
Mein Script:
Mein Cron Eintrag:
Die Fehlermail von Cron:
Würd mich über Antwort freuhen!
Mein Script:
Code: Alles auswählen
#!/bin/bash
fehler=""
#Ordner der Patterndateien
pathp=/share/wprog/trend/PCCSRV/
#Ordner der backup Patterndateien
pathb=/share/wprog/trend/PCCSRV/lpt\$vpn.OLD.BAK/
#Ordner der runtergeladenen Daten
pathd=/share/wprog/trend/PCCSRV/tmp/
mkdir -p /share/wprog/trend/PCCSRV/tmp/
#Datenserver von Trendmicro
dserv=http://217.110.201.54/
#datum=`date +%d.%m.%Y`
datum=`date -R`
#echo -ne "\n\nUpdate das Viren Patternfile\n"
cd ~/tmp/
#Prüfen, der aktuell installierten Patternnummer
aktuell=`ls -l $pathp | grep "lpt\$vpn."`
if [ "$aktuell" = "" ] ; then
#echo -ne "\nEs ist noch keine Patterndatei installiert\n"
aktuell="000"
else
aktuell="${aktuell:65:3}"
#echo "Die aktuelle Patternnummer ist $aktuell"
fi
#Holen, der aktuell verfügbaren Patternnummer
wget -q -O $pathd\OPR.txt $dserv\OPR.txt
rc=$?
if [ "$rc" != "0" ] ; then
echo -ne "\nFehler!\n"
fehler="Fehler beim herunterladen der OPR.txt zum Prüfen der aktuell verfügbaren Patternnummer! ($rc)"
fi
if [ "$fehler" = "" ] ; then
nummer=`cat $pathd\OPR.txt | grep "Pattern: "`
nummer=${nummer:9:3}
patternfile="AVEU$nummer.zip"
rm $pathd\OPR.txt
#Vergleichen der Patternnummern
if [ "$aktuell" -ge "$nummer" ] ; then
#echo -ne "\nEs ist keine neue Patterndatei Verfügbar!\n"
fehler="Fehler: Keine neue Patterndatei auf dem Server vorhanden"
fi
fi
if [ "$fehler" = "" ] ; then
#echo -ne "\nPatternfile Nummer $nummer wird Heruntergeladen...\n"
#Herrunterladen des Patternfiles
wget -q -O $pathd$patternfile $dserv$patternfile
rc=$?
if [ "$rc" != "0" ] ; then
echo "Fehler!"
fehler="Fehler beim Herunterladen der Patterndatei! ($rc)"
fi
fi
#Entpacken und verteilen des Patternfiles
if [ "$fehler" = "" ] ; then
unzip -q -o $pathd$patternfile -d $pathd
rm $pathd\whatsnew.txt
#Die alte Patterndatei in den Backupordner kopieren
mv -f $pathd\lpt\$vpn.$nummer $pathp
#Die neue Patterndatei in den richtigen Ordner kopieren
mv $pathp\lpt\$vpn.$aktuell $pathb
rm $pathd$patternfile
#echo -ne "Fertig!\n\n"
fi
#Wenn ein Fehler auftritt(oda eben nicht)
if [ "$fehler" = "" ] ; then
#Protokolldatei
echo "$datum root Patternupdate auf V$nummer" >> $pathp\logfile.txt
else
#Protokolldatei
echo "$datum root Patternupdate Fehlgeschlagen. $fehler" >> $pathp\logfile.txt
#Mail an IT
#echo -ne "\nMail\n $fehler \n\n" | mail -s "betreff"
#oda so ähnlich :/
fi
Code: Alles auswählen
*/59 5 * * * root /bin/bash /etc/hhp/scripts/patternupdate.sh
Code: Alles auswählen
/etc/hhp/scripts/patternupdate.sh: /etc/hhp/scripts/patternupdate.sh: cannot execute binary file
Würd mich über Antwort freuhen!