• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

Ersatz für die Crontab in ML

Turkey1976

Raisin Rouge
Registriert
03.07.07
Beiträge
1.174
Hi,

leider gibt es unter ML keine crontab mehr.
Laut einschlägigen Webseiten soll angeblich " sudo touch /etc/crontab"
das Problem lösen, aber bei mir funktioniert das nicht.

Gibt es eine alternative um regelmäßig Jobs zu erledigen?
 
launchd übernimmt das. Der Daemon fragt plist-Einträge in den diversen Libraries unter /LaunchDaemons und /LaunchAgents ab.
Läst sich u.a. mit dem Programm Lingon einstellen.
 
Laut einschlägigen Webseiten soll angeblich " sudo touch /etc/crontab" das Problem lösen

Das ist richtig. Da OS X ein zertifiziertes UNIX-System bleiben soll, funktioniert cron auch weiterhin ohne Probleme.

Welches Problem tritt denn auf?
 
crontab gibt es weiterhin ... mit welchem account versuchst Du denn crontab zu benutzen?
 
ich bin mit einem user "admin" im System, der wie der Name schon andeutet, fast alle Rechte hat.

Dann habe ich dieses

"sudo touch /etc/crontab" gemacht und anschließend mit "sudo vi /etc/crontab" die Datei bearbeitet und Folgendes reingeschrieben:

" * * * * * VBoxManage startvm "myVM" "

Damit möchte ich, dass minütlich eine Virtuelle Maschine von VirtualBox gestartet wird. Meistens wird die Maschine zwar laufen, aber dann gibt es in der shell lediglich eine entsprechende Rückmeldung. Leider passiert aber mit diesem Eintrag überhaupt nichts...
 
/etc/crontab ist aber leider überhaupt nicht die Tabelle, sondern lediglich eine leere Triggerdatei, die den cron Server permanent aktiv schaltet.
Zum Erstellen von crontabs benutze man doch bitte das Kommando /usr/bin/crontab

(Die Datei /etc/crontab kann man sich schenken, denn sobald irgendeine Tab für irgendeinen Benutzer existiert, läuft der dazugehörige Server ohnehin schon los. Die separate Triggerdatei dient nur zu dem Zweck das temporäre Beenden des Dienstes beim bearbeiten der Tabellen zu verhindern, manche Sicherheitssoftware mag es nämlich gar nicht wenn cron seine PID plötzlich ändert. Sehr spezielles Feature, nicht relevant.)
 
0)
Das Bearbeiten der /etc/crontab in dieser Form ist sinnfrei

1)
braucht cron immer den absoluten Pfad ... oder das Setzen eines entsprechenden Pfad-Environments
$ which vboxmanage
/usr/bin/vboxmanage

also
* * * * * /usr/bin/vboxmanage startvm "myVM"

2)
wenn du ein globales cron laufen lassen willst, dann müsste es schon so sein...
$ sudo -i
das macht dich zu root
Dein admin ist ein ganz normaler user, der lediglich sudo darf

$ crontab -l
listet die aktuelle Tabelle

$ crontab -e
zum bearbeiten der crontab

3)
trotzdem macht es so keinen Sinn, denn in welchem UI-Kontext soll denn Deine VM laufen?
Da Du Deine virtuelle Maschine nicht headless startest geht das mit root eh schief....

4)
ich geh ich mal davon aus, dass dein Rechner eh immer mit irgend einem account angemeldet ist wenn dein Rechner läuft...

Dann reicht es auch mit dem Account auf dem terminal ein
$ crontab -l
$ crontab -e
ohne sudo!
... damit bearbeitest Du die crontab des aktuellen accounts... die wird auch nur dann ausgeführt, wenn der user eingelogt ist

Allerdings find ich es ziemlich gaga jede Minute zu versuchen eine VM zu starten, die sehr wahrscheinlich eh schon läuft
Das erzeugt dann jede Minute eine exception :-/
 

Ich kann den Manpages von cron nicht viel abgewinnen.

wenn ich von admin$ "crontab -e" eingebe, die gewünschte Zeile editiere und anschließen versuche mit "wq!" abzuspeichern werden die Arbeiten nicht gespeichert.

Stellt euch mal vor, ich sei doof...
 
Ich kann den Manpages von cron nicht viel abgewinnen.

ach .. und deshalb müssen wir sie für Dich lesen? :-!

wenn ich von admin$ "crontab -e" eingebe, die gewünschte Zeile editiere und anschließen versuche mit "wq!" abzuspeichern werden die Arbeiten nicht gespeichert.

Wozu das "!" ?

Was heißt "werden die Arbeiten nicht gespeichert."???
Gibt es Fehlermeldungen?

Entweder ist das, was Du da einträgst von der Syntax falsch, dann wird es auch nicht gespeichert oder irgendwas bei Dir, durch Deine Basteleien, verbogen. :-/ Ich kann das hier auf XX Macs mit SL, L und ML machen ...
 
Danke ich hab's jetzt!

Mein Fehler war, dass ich erstmal eine leere Textdatei erstellen musste und dann mit "crontab /pfad-zum-glück" auf diese Datei verweisen musste und dann klappte auch "crontab -e" und mein Gefummel mit vi.
 
Danke ich hab's jetzt!
dass ich erstmal eine leere Textdatei erstellen musste und dann mit "crontab /pfad-zum-glück" auf diese Datei verweisen musste und dann klappte auch "crontab -e" und mein Gefummel mit vi.

Da ist irgend was vergurkt durch Dein Gebastel - genau das:

dass ich erstmal eine leere Textdatei erstellen musste und dann mit "crontab /pfad-zum-glück" auf diese Datei verweisen

muss/soll man so überhaupt nicht machen und ist bei einer "normalen" Mac OS X Installation auch nicht erforderlich. Es reicht im Terminal:

* "crontab -e" einzugeben
* Mit "i" in den insert mode von vi
* Text eingeben
* mit "Escape :wq" speichern
* mit "crontab -l" die aktuelle tab anzeigen
 
Zuletzt bearbeitet:
Ist mir aufgefallen, dass ich was vergurkt hätte... ist ML Server... egal läuft.