cron.daily Frage

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
MarieJane
Beiträge: 6
Registriert: 20.05.2008 10:19:22

cron.daily Frage

Beitrag von MarieJane » 21.05.2008 08:55:45

Hallo,

mein Problem: automysqlbackup - ein script in cron.daily wird nicht ausgeführt. Es ist korrekt mit chmod +x gekennzeichnet und wenn ich es von dort manuell ausführe, funktioniert es. Es läuft aber nicht automatisch jeden Tag - warum auch immer.

Ich hab folgende Files in meinem cron.daily Verzeichnis:
-rwxr-xr-x 1 root root 5.0K 2007-02-26 22:53 apt
-rwxr-xr-x 1 root root 314 2007-03-14 15:46 aptitude
-rwxr-xr-x 1 root root 25K 2007-12-08 16:45 automysqlbackup
-rwxr-xr-x 1 root root 502 2007-01-02 18:34 bsdmainutils
-rwxr-xr-x 1 root root 527 2006-11-11 11:20 exim
-rwxr-xr-x 1 root root 3.9K 2007-01-20 11:22 exim4-base
-rwxr-xr-x 1 root root 419 2006-08-06 10:38 find
-rwxr-xr-x 1 root root 89 2006-04-09 00:37 logrotate
-rwxr-xr-x 1 root root 946 2007-01-29 13:20 man-db
-rwxr-xr-x 1 root root 1.2K 2007-03-04 14:05 ntp
-rwxr-xr-x 1 root root 3.3K 2006-12-09 05:52 sendmail
-rwxr-xr-x 1 root root 3.3K 2006-12-20 01:20 standard
-rwxr-xr-x 1 root root 1.3K 2006-05-25 11:51 sysklogd
Wenn z.B. eins dieser Skripte nicht funktionieren sollte, wird dann der komplette cron.daily gestoppt? Wo legt man fest wann cron.daily ausgeführt wird - bzw. kann es sein, dass er gar nicht ausgeführt wird?

Vielen Dank!
MarieJane

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: cron.daily Frage

Beitrag von rendegast » 21.05.2008 13:19:58

aus /etc/crontab:

Code: Alles auswählen

25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
Du könntest mal probieren:

Code: Alles auswählen

run-parts  --test  /etc/cron.daily
nach oberem Listing aber doch in Ordnung.

In debian finde ich automysqlbackup nicht.
Jenes? :
http://members.lycos.co.uk/wipe_out/automysqlbackup/
http://sourceforge.net/projects/automysqlbackup/


Liegt es am Environment?
Bau doch mal an mehreren Stellen ein :

Code: Alles auswählen

set > /tmp/LOG
um das zu checken.
Das würde aber nicht zu "nicht automatisch jeden Tag" passen.
Es läuft aber nicht automatisch jeden Tag
manchmal klappt es also?
Vielleicht hat die Datenbank zu der Zeit Probleme?




------- off-topic ------------------------------------------------------
aus README.debian, wegen der password-Behandlung im Script:
If you are tired to type the password in every time or want to automate your
scripts you can store it in the file $HOME/.my.cnf. It should be chmod 0600
(-rw------- username username .my.cnf) to ensure that nobody else can read
it. Every other configuration parameter can be stored there, too. You will
find an example below and more information in the MySQL manual in
/usr/share/doc/mysql-doc or http://www.mysql.com.

ATTENTION: It is necessary, that a .my.cnf from root always contains a "user"
line wherever there is a "password" line, else, the Debian maintenance
scripts, that use /etc/mysql/debian.cnf, will use the username
"debian-sys-maint" but the password that is in root's .my.cnf. Also note,
that every change you make in the /root/.my.cnf will affect the mysql cron
script, too.

# an example of $HOME/.my.cnf
[client]
user = your-mysql-username
password = enter-your-good-new-password-here
http://dev.mysql.com/doc/refman/5.0/en/ ... urity.html
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

MarieJane
Beiträge: 6
Registriert: 20.05.2008 10:19:22

Re: cron.daily Frage

Beitrag von MarieJane » 22.05.2008 08:20:11

Hi,

hm, es geht immer noch nicht, mein /etc/crontab scheint korrekt zu sein:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
...
Die URL zu AutoMysqlBackup die du gepostet hast stimmt. Dort steht auch drin:
# Finally copy automysqlbackup.sh to anywhere on your server and make sure
# to set executable permission. You can also copy the script to
# /etc/cron.daily to have it execute automatically every night or simply
# place a symlink in /etc/cron.daily to the file if you wish to keep it
# somwhere else.
# NOTE:On Debian copy the file with no extention for it to be run
# by cron e.g just name the file "automysqlbackup"
Genau das hab ich gemacht. Der Test Command gibt folgendes aus:
/etc/cron.daily# run-parts --test /etc/cron.daily
/etc/cron.daily/apt
/etc/cron.daily/aptitude
/etc/cron.daily/automysqlbackup
/etc/cron.daily/bsdmainutils
/etc/cron.daily/exim
/etc/cron.daily/exim4-base
/etc/cron.daily/find
/etc/cron.daily/logrotate
/etc/cron.daily/man-db
/etc/cron.daily/ntp
/etc/cron.daily/sendmail
/etc/cron.daily/standard
/etc/cron.daily/sysklogd
.. aber es läuft einfach nicht. Wenn ich es aus /etc/cron.daily manuell starte, funktioniert es einwandfrei:
/etc/cron.daily# ./automysqlbackup
...skript startet, etc. und beendet sich korrekt...
======================================================================
If you find AutoMySQLBackup valuable please make a donation at
http://sourceforge.net/project/project_ ... _id=101066
======================================================================
Es wird nur nicht automatisch jeden Tag ausgeführt, obwohl es in cron.daily ist.

An was könnte das denn noch liegen?

Liebe Grüße,
MarieJane

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: cron.daily Frage

Beitrag von rendegast » 22.05.2008 15:42:57

Sind Angaben in LOGFILE oder LOGERR ?

Leer/Sonderzeichen in Verzeichnisnamen?
Die Variablen im Script sind eigentlich alle ge"quoted", aber werden durch das Environment des cron-Job vielleicht trotzdem anders interpretiert?

Bashism? Bei mir haben alle Skripts in cron.daily

Code: Alles auswählen

#!/bin/sh
Bastel "waypoints" in das Script, um zu sehen wo es hängt.

Code: Alles auswählen

echo  [1|2|...]  >>  /AUTOMYSQLBACKUP.log
set  >>  /AUTOMYSQLBACKUP.log
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

MarieJane
Beiträge: 6
Registriert: 20.05.2008 10:19:22

Re: cron.daily Frage

Beitrag von MarieJane » 23.05.2008 12:36:43

Danke für deine Hilfe.

... der Fehler lag hier:
##!/bin/bash
Anstatt 2 # gehört da nur ein # hin.

Danke!
MarieJane

Benutzeravatar
bagalude
Beiträge: 44
Registriert: 02.11.2003 22:50:04
Wohnort: Hamburg

Re: cron.daily Frage

Beitrag von bagalude » 23.05.2008 22:44:30

Habe leider das selbe Problem. Allerdings scheint bei mir die Lösung nicht ganz so einfach zu sein.... :(

Zu Testzwecken habe ich es inzwischen selbst mit dem folgenden testscript probiert:

daycron.sh

Code: Alles auswählen

#!/bin/sh
zeit=`/bin/date +%Y.%m.%d-%H:%M:%S`
#zeit = $(/bin/date +%Y.%m.%d-%H:%M:%S)
if
    /usr/sbin/ntpdate ptbtime1.ptb.de

then
    echo "$zeit Zeitupdate erfolgreich" >> /var/log/mycron.log

else
    echo "$zeit Zeitupdate fehlgeschlagen" >> /var/log/mycron.log

fi
leider ist weder im syslog noch im mycron.log noch sonstwo etwas darüber zu erfahren. Ein Cronlog scheint es bei mir nicht zu geben. Ansonsten habe ich die selbe config im crontab, das script ist in /etc/cron.daily und hat chmod 775. Weiss wer woran es liegen könnte bzw. wo ich evtl nachsehen oder wie ich cron dazu bringen könnte zu loggen??
Try and find out...
Und Rettet die GNU´s!

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: cron.daily Frage

Beitrag von rendegast » 23.05.2008 23:18:49

@bagalude
Wie oben

Code: Alles auswählen

run-parts  --test  /etc/cron.daily
daycron.sh
Versuche es mal mit einem Skriptnamen ohne "."
automysqlbackup.sh.2.5 hat geschrieben:# NOTE:On Debian copy the file with no extention for it to be run
# by cron e.g just name the file "automysqlbackup"
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
bagalude
Beiträge: 44
Registriert: 02.11.2003 22:50:04
Wohnort: Hamburg

Re: cron.daily Frage

Beitrag von bagalude » 24.05.2008 11:17:38

Och ich Trottel!!!! :lol:
Das .sh scheint es in der Tat zu sein. Ist wohl eine Debian besonderheit, denn unter Suse auf meinem Webserver laufen die Scripte auch mit einem .sh...

Nachdem ich die Scripte umbenannt habe werden sie mir nun auch unter run-parts --test /etc/cron.daily angezeigt... :D
Ob es ganz funzt und der Fehler dort lag kann ich allerdings erst Morgen früh sagen (der cron läuft um 6Uhr....^^).

THX in jedem Fall erstmal für die Hilfe! :hail:
Try and find out...
Und Rettet die GNU´s!

Benutzeravatar
LessWire
Beiträge: 558
Registriert: 21.11.2004 04:36:04
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bavaria

Re: cron.daily Frage

Beitrag von LessWire » 25.05.2008 04:46:00

Hallo bagalude,

nur mal als Hinweis am Rande:

"ptbtime1.ptb.de" ist zwar theoretisch erste Wahl, aber praktisch nicht empfehlenswert - offenbar immer öfter hoffnungslos überlastet, es kommt dann gar keine Antwort mehr ("ntpdate" sollte dann natürlich auf "timeout" laufen).
Ich habe meine cronjobs diesbezüglich alle umgestellt.

vg, L.W.
at ~ now.

Benutzeravatar
bagalude
Beiträge: 44
Registriert: 02.11.2003 22:50:04
Wohnort: Hamburg

Re: cron.daily Frage

Beitrag von bagalude » 31.05.2008 12:51:19

Hmm irgendwie wird das script bei mir immer 2 Mal ausgeführt. Könnte die lange scriptlaufzeit der Grund dafür sein? Und gibt es eine sinnvolle Möglichkeit dies zu unterbinden?
Hintergrund ist der das es bei diesem cron ja nicht schlimm ist, ich aber noch einen 2. habe der meinen 24 std reconnect auf eine bestimmte Zeit legen soll. Dieser wird leider auch doppelt ausgeführt, ergo habe ich danach ppp0 und ppp1 was mir natürlich meine gesammten IP Tables Einstellungen zerpflückt. Fazit das Routing geht nicht mehr und mein Netz ist offline. Sprich im Prinzip müsste ich zumindest dieses Script dazu zwingen nur max ein Mal zu laufen... Weiss wer rat?
Try and find out...
Und Rettet die GNU´s!

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: cron.daily Frage

Beitrag von rendegast » 31.05.2008 13:32:15

/etc/cron.daily/automysqlbackup umbenennen in
/etc/cron.daily/zz_automysqlbackup ?

Statt direkt dort einzusetzen, ein wrapper-script benutzen:
/etc/cron.daily/zz_mysqlbackup:

Code: Alles auswählen

#!/bin/sh
pidof  automysqlbackup.sh  &&  exit 0
/usr/local/bin/automysqlbackup.sh
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten