2017年2月6日 星期一

在樹莓派上設定 Crontab 的新方法

上週費了一番手腳終於搞定在樹莓派上用 Crontab 去自動跑 PHP 程式的設定, 問題雖然解決了, 但總覺得作法有點麻煩與彆扭, 參看 :


前日收到熱心網友 Jeff 兄留言, 提供了更棒的作法, 參考 :


原來是直接用 curl 程式執行 PHP, 我先在命令列測試可以順利執行 :

pi@raspberrypi:~ $ /usr/bin/curl -q http://localhost/tony/cron/fetch_yahoo_usa_stocks.php
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>擷取 Yahoo 美股收盤報告</title>
</head>
<body>
<P>擷取 Yahoo 美股收盤報告</P>
Asia/Taipei<br><a href='https://tw.finance.yahoo.com/us/worldidx.php' target='_blank'>原始網頁</a><br>交易日期=02/04/2017<br>交易日期=2017-02-04<br>道瓊工業指數收盤=20071.46<br>道瓊工業指數漲跌=▲186.55(+0.94%)<br>那斯達克指數收盤=5666.77<br>那斯達克指數漲跌=▲30.57(+0.54%)<br>史坦普指數收盤=2297.42<br>史坦普指數漲跌=▲16.57(+0.73%)<br>費城半導體指數收盤=964.02<br>費城半導體指數漲跌=▲4.94(+0.51%)<br><br>處理時間 :3 秒</body>

於是我先將三個 PHP 程式的權限由 755 改回 644 (全部使用者均只有 r 權限) :

sudo chmod 644 fetch_yahoo_usa_stocks.php
sudo chmod 644 fetch_yahoo_major.php
sudo chmod 644 fetch_yahoo_earning.php

然後修改 Crontab, 將原先跑的 shell 程式改為用 curl 跑 PHP : 

*/5 * * * * /usr/bin/curl -q http://localhost/tony/cron/fetch_yahoo_usa_stocks.php
*/5 * * * * /usr/bin/curl -q http://localhost/tony/cron/fetch_yahoo_major.php
*/5 * * * * /usr/bin/curl -q http://localhost/tony/cron//fetch_yahoo_earning.php

測試結果真的可以順利執行! 這方法簡單有效不囉嗦, Jeff 兄實在太感謝您了! 這幾天再來測試用 sendmail 傳送檔案.

另外還可以安裝 gnome-schedule 這個 GUI 介面的 Crontab 設定程式, 安裝指令如下 :

sudo apt-get install gnome-schedule

參考 :

# SCHEDULING TASKS WITH CRON

沒有留言 :