Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Gibt es eine Möglichkeit einen Cronjob ins Crontab einzutragen, sodass dieser direkt erkannt wird, als hätte man es über crontab -e gemacht?

Geschrieben

ich weiss jetzt nicht genau was crontab -e macht, aber ich hab schon cronjobs z.b. in die cron.daily eingetragen und diese sind beim nächsten durchlaufen des Crons sofort wirksam gewesen.

Gruß,

Markus

Geschrieben

Wenn du crontab -e eingibst startet er vi und öffnet die datei /etc/crontab, dann musst du i drücken für insert, jetzt kannst du die Datei editieren, und die Zeile(n) eintragen. Wenn du fertig bist, musst du ESC drücken, jetzt :wq (write+quit) eingeben und Enter drücken.

Mit crontab -l kannst du dir die eingetragenen Crontabs ansehen. Ganz nett für die korekkte Syntax ist: http://www.linuxhilfen.org/befehle/crontab.html

Geschrieben

Okay zweite Runde:

Ich hab mich scheinbar falsch ausgedrückt :! Also ich möchte per PHP einen Cronjob eintragen. Also mit shell_exec() oder exec(). Nur was muss ich da machen, damit ich den eintragen kann. Denn ich kann crontab -e schlecht bei exec() machen, da sich da ja vi öffnet.

Geschrieben

Kenne mich mit php nicht aus, nur mit perl und bash. Da machst du das dann per echo, als beispiel: echo "crontabeintrag" >> /etc/crontab, dann fügt der das unten in die datei ein. Bei perl kann ich mit system ( "/bin/echo "crontabeintrag" >> /etc/crontab" ) machen. Musst aber root sein, da nur root die Datei ändern darf. Ansonsten mit Php den kram in ne Textdatei und dann n' kleines Shellscript, das per cron alle 5 Minuten die Crontab aktualisiert. Ist auch sicherer, da man niemals per PHP mit rootrechten auf dem Server arbeiten sollte. Geht sowieso nicht, aber wäre mit "sudo" möglich.

Geschrieben
wie gesagt, einfach die datei /etc/crontab öffnen und reinschreiben,...

Okay ich werds mal ausprobieren. Werd mich dann nochmal melden, wenn ichs getestet habe und ob es funktioniert hat.

Geschrieben

Also wenn ich dich richtig verstanden habe, liegt dein Problem darin, dass crontab -e den VI öffnet und du das über shell_exec() oder exec() nicht realisieren kannst. Für alle Unix-Befehle, (die ich per shell_exec() über PHP ausführen möchte) wo sich danach ein Editor öffnet zum Eintragen, mache ich es so, dass ich dass, was ich eintragen möchte in eine Dateiumleitung (per > ) mache. Und wenn ich SicherheitsProbs habe (weil man Cronjobs vielleicht als root machen muss), dann mache ich mir ein kleines Shell-Skript, welches einfach den Befehl als Parameter entgegen nimmt und diesen ausführt (und dieses Skript mache ich dann für nobody ausführbar).

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...