ubuntuusers.de

Crontab über script neu laden

Status: Gelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

martin7025c

Anmeldungsdatum:
11. Juli 2010

Beiträge: 5

Hallo,

Ich hatte in einem älteren Script von mir mal was drinnen mit dem ich crontab neu laden konnte.

/etc/init.d/cron restart

Damit konnte ich wenn ich über das Script in die Datei "/var/spool/cron/crontabs/root" einen neuen Eintrag gemacht habe das ganze neu laden und der Corn Befehl wurde ausgeführt.

Jetzt hab ich aber das Problem wenn ich das gleiche Script unter Ubuntu 10.4 ausführe dann haut das neu laden nicht mehr hin. Mit Ubuntu 8.10 ging das ohne Probleme.

Hat sich da was geändert oder hat jemand eine Idee für mich wie ich das hin bekommen könnte.

Danke Martin

riffraff

Avatar von riffraff

Anmeldungsdatum:
1. Oktober 2006

Beiträge: 486

Wohnort: Im kühlen Norden

1.tens

Du solltest niemals die Datei in /var/spool/cron/crontabs/root direkt editieren!

Wenn Du mit

 crontab -e

die Crontab editierst und anschliessend absepicherst und den editor (vi, emacs) beendest, wird die neue Crontab automatisch aktiviert.

2.tens:

Wenn Du Dein Script mal an der Shell ausführst - welche Fehler kommen denn?

Evtl. benötigst Du nur noch ein

 sudo...

davor....

martin7025c

(Themenstarter)

Anmeldungsdatum:
11. Juli 2010

Beiträge: 5

Hi riffraff

Danke für deine Antwort.

Das mit crontab -e kenn ich aber das hilft mir denke ich nicht viel wenn ich über ein Script einen cronjob hinzufügen will.

Das Script hatte ich schon mit sudo ausgeführt das es sonst nicht geht.

Hat jemand eine Idee für mich wie ich einen Crobjob per Script erstellen kann das er dann auch funktioniert?

Ich wäre sehr dankbar darüber.

Gruß Martin

riffraff

Avatar von riffraff

Anmeldungsdatum:
1. Oktober 2006

Beiträge: 486

Wohnort: Im kühlen Norden

Du kannst doch mit

 crontab -l >> CRONTAB_LISTE

die Dinge erstmal in eine Datei schreiben, und dann

evtl. in einem Script

...
...
echo "15 6,18 * * * mein_super_befehl.sh >>/dev/null 2>&1" >> CRONTAB_LISTE
...

und dann das ganze aktivieren

crontab -u root CRONTAB_LISTE

Aber wenn es unbedingt sein muß, geht das auch über das Editieren der /var/spool/cron/crontabs/root Datei und einem anschliessendem

sudo /etc/init.d/cron reload

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

crontab -e nutzt $EDITOR, falls das gesetzt ist - das muss aber kein interaktiver Editor sein. Du kannst also einfach $EDITOR auf ein Skript setzen, das einen Dateinamen als Parameter nimmt und diese Datei passend verändert, und dann crontab -e aufrufen.

martin7025c

(Themenstarter)

Anmeldungsdatum:
11. Juli 2010

Beiträge: 5

Danke das ihr mir geholfen habt.

Jetzt läuft mein Script wieder.

Gruß Martin

Antworten |