簡體   English   中英

crontab如何在控制台中打印消息?

[英]How can crontab print messages in console?

嗨,我是Linux的新手:D

我制作了一個crontab程序,它應該每隔3分鍾在控制台中打印當前時間。

我在下面做了什么。

  1. 我做了一個crontab。 在終端中,命令“ crontab -e ”並添加短語“ */3 * * * * /home/user/a.out

  2. a.out是“ gcc WowCron.c ”的結果文件。

代碼如下。

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;
} 

當單獨運行時,它運行得非常好。

  1. 然后我在終端運行了“ service cron restart ”命令。 現在,當我命令“ crontab -l ”時,我可以看到我在crontab中寫的消息。

  2. 問題是某種程度上我覺得它有效,但從不打印時間信息。

問:如何每3分鍾打印一次這個打印時間?

來自cron作業的標准輸出不會在控制台上結束。 嘗試使用syslog工具。

或者,如果您不需要將它集成到您​​自己的更大的C程序中,請使用logger命令。

*/3 * * * * logger Still here ...

(系統日志已包含時間戳。)

來自cron作業的任何標准輸出和標准錯誤最終都會通過電子郵件發送給作業所有者。 也許您應該檢查您的郵箱,或者您的電子郵件可能無法正常工作?

Cron觸發一個新的進程在后台啟動。 您通過終端(這是一個進程)配置它,但它與該終端無關。 每個進程都有自己的STDOUT,STDIN,STDERR,因此cron任務在一個新進程上,它不會打印到你的終端進程'STDOUT

正如tripleee所說,如果你想要它打印syslog是一個好去處,或者你可以將它附加到你選擇的文件。

如果您只是希望程序在終端中以一定的時間間隔運行,那么Shell腳本可能是更好的選擇:

while : 
do
    date
    sleep 180 
done

或者您可以用“./a.out”替換“date”函數並從同一目錄運行它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM