Wie kann crontab drucken von Meldungen in der Konsole?
Hallo, ich bin wirklich neu in Linux:D
Machte ich einen crontab-Programm soll zu drucken, die aktuelle Zeit in jeder Konsole 3 Minuten.
Was ich getan habe ist unten.
-
Machte ich einen crontab. Im terminal den Befehl
"crontab -e
" und fügen Sie einen Satz "*/3 * * * * /home/user/a.out
" -
ein.ist eine Ergebnis-Datei "
gcc WowCron.c
".
Code ist unten.
int main (int argc, char* argv[]){
time_t now;
time(&now);
printf("this is what we call cron does: %s\n", ctime(&now));
return 0;
}
und es funktioniert wunderbar, wenn Sie einzeln ausgeführt.
-
Dann lief ich ein "
service cron restart
" Befehl im terminal.
Wenn ich jetzt den Befehl "crontab -l
", sehe ich die Nachrichten, was ich geschrieben habe in crontab. -
Das problem ist, irgendwie glaube ich, dass es funktioniert, aber es druckt keine Zeit die Nachricht zu.
Frage: Wie kann ich machen das drucken mal alle 3 Minuten?
- was ist falsch mit meinem schreiben? Mein C-code, der Total abgestürzt!!! trotzdem, der code ist nichts besonderes, aber drucken der aktuellen Zeit.
- Es gibt keine Notwendigkeit, neu zu starten
cron
. Es liest alle crontabs jedes mal, wenn es ausgeführt wird, so dass jeder Benutzer kann die update ihrigen zu jeder Zeit und sehen die Ergebnisse sofort. - Was ist also der Zweck-of-service cron restart-Befehl bedeutet? War es einfach nur eine sinnlose Aktion? Trotzdem, vielen Dank für die Beantwortung konsequent.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Cron stößt einen neuen Prozess zu starten, in den hintergrund. Konfigurieren Sie es über ein terminal (das ist ein Prozess), aber es hat nichts damit zu tun, dass terminal sonst. Jeder Prozess hat seine eigene, STDOUT, STDIN, STDERR, so wie die cron-tasks auf einem neuen Verfahren ist es nicht drucken zu Ihrem terminal Prozess' STDOUT
Als tripleee sagt, wenn Sie möchten, es zu drucken syslog ist ein guter Ort, um zu gehen, oder können Sie es Anhängen, um eine Datei Ihrer Wahl.
Wenn Sie wollen einfach nur das Programm in einem Zeitintervall in einem terminal dann ein Shell-Skript ist wahrscheinlich eine bessere option:
Oder Sie können ersetzen Sie die "date" - Funktion mit "./ein.out" und führen Sie es aus dem gleichen Verzeichnis
Den standard-Ausgang von einem
cron
Arbeit nicht zu Ende, bis auf die Konsole. Versuchen Sie es mit dersyslog
Anlage.Alternativ, wenn Sie nicht brauchen, zu integrieren in ein größeres C-Programm Ihre eigenen, verwenden Sie die
logger
Befehl.(System-log bereits einen Zeitstempel enthält.)
Jedem standard-output und standard-error von einem cron-job endet gesendet werden, per E-Mail zu den job-Besitzer. Vielleicht überprüfen Sie Ihr Postfach, oder vielleicht Ihre E-Mail nicht richtig funktioniert?