Zum Inhalt springen

bash script funzt net


fachinfo007

Empfohlene Beiträge

Hi, habe folgendes bash-script, das alle 15 Minuten läuft (also 00,15,30,45):

#!/bin/bash


## Define your websites in an array

sites=(site1.de site2.de)


len=${#sites[*]}

for((i=0; i<$len; i++)); do

        wget -O - -q -t 1 http://${sites[${i}]}/cron.php

done


## Nur 1x im Monat, jeden 7. um 3:00 Uhr nachts

tag_time=$(date +"%d-%H-%M")

datum=$(date +"%Y-%m-%d")

if ([ $tag_time = "07-03-00" ])

        then tar cfvj ~/scripts/backup/$datum.tar.bz ~/public_html/drupal &> /dev/null

fi

Der erste Teil tut, aber das backup wird einfach nicht erstellt, obwohl der cronjob zur richtigen Zeit startet. Wenn ich die uhrzeit ändere und das Script von Hand starte funktioniert es allerdings - nur über cron gehts nicht.

Habt Ihr Ideen, was das sein könnte?

Danke schonmal!

Gruß

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der erste Teil tut, aber das backup wird einfach nicht erstellt, obwohl der cronjob zur richtigen Zeit startet. Wenn ich die uhrzeit ändere und das Script von Hand starte funktioniert es allerdings - nur über cron gehts nicht.

Vermutlich dauert das wget der 2 Sites länger als eine Minute...?

Du solltest das Datum beim start des scripts ermitteln und festhalten. Sonst bist du immer davon abhängig wie lange Befehle brauchen bis du beim finalen if...then bist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Umgestellt (wget als zweites) und mit absoluten Pfadangaben ist es jetzt erfolgreich durchgelaufen, Danke!

Allerdings steht in der eMail, die ich zu jeder Ausführung des cronjob bekomme, er sei "wegen Zeitüberschreitung abgebrochen" worden.

Gab's da nicht auch mal einen Trick, das sich scripte selbst recursiv aufrufen bzw. sich selbst sourcen, damit keine Zeitüberschreitung kommt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eher rausfinden was genau da in einen Timeout rennt und das Problem beheben.

Wie finde ich das denn raus? Wenn ich das gesamte script von Hand starte, dann läuft es in 18 Sekunden ab (time ./cronscript.bash).

Gibt es ein Zeitlimit für cronjobs oder bash-scripte? ulimit -t ist unlimited...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie finde ich das denn raus? Wenn ich das gesamte script von Hand starte, dann läuft es in 18 Sekunden ab (time ./cronscript.bash).

Gibt es ein Zeitlimit für cronjobs oder bash-scripte? ulimit -t ist unlimited...

Eventuell in die crontab statt

/pfad/zum/cronscript.bash

ein

/bin/sh -x /pfad/zum/cronscript.bash 2> /var/tmp/cronscript.debug

werfen, das nutzt den debugmodus und STDERR wird in die debugdatei umgeleitet. Die kann man sich dann ja mal anschauen

Außerdem sollte man bei externen Aufrufen wie wget, tar etc. gerne mal den exitcode testen. Man darf sich nie drauf verlassen das alles Funktioniert hat, gerade bei Scripts die unbeaufsichtigt laufen.

Das es spezielle Zeitlimits für cronjobs gibt wäre mir nicht bekannt - was nicht heißt das es sie nicht gibt... :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke Dir, DevilDawn. Ich habe mal den Debug-output mitgelesen, alles funzt wie's soll, die exit-codes sind bei allen 0, trotz das ein Abbruch gemeldet wird.

Scheinbar kommt immer nach 20 Sekunden die Meldung, der Cronjob sei abgebrochen worden, auch wenn er durchgelaufen ist.

Wenn es ein Limit gibt wurmt es mich, das ich nichts darüber weiß :-)

Hier hat jemand das gleiche Problem (auf einem anderen hoster): Link

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...