crontab+lynx實現(xiàn)定時訪問URL

目標:

讓計算機定時訪問某個URL鏈接,以完成不可告人的目的。

方法:

  1. windows 的計劃任務(wù)
  2. linux的腳本程序
  3. 讓web瀏覽器定時刷新

分析:

讓瀏覽器定時刷新是個不錯的主意。但在PHP環(huán)境中實現(xiàn)這個方法需要解決如下幾個問題:

  1. PHP腳本執(zhí)行時間限制,默認的是30m 解決辦法:set_time_limit();或者修改PHP.ini 設(shè)置max_execution_time時間(不推薦)
  2. 如果客戶端瀏覽器關(guān)閉,程序可能就被迫終止,解決辦法:ignore_user_abort即使關(guān)閉頁面依然正常執(zhí)行
  3. 如果程序一直執(zhí)行很有可能會消耗大量的資源,解決辦法使用sleep使用程序休眠一會,然后在執(zhí)行

另外,博主也有結(jié)論:PHP定時執(zhí)行任務(wù)的效率不是很高,建議關(guān)于定時執(zhí)行任務(wù)的工作還是交給shell來做吧,畢竟那才是王道。

由于服務(wù)器環(huán)境為linux,我們直奔主題:如何使用Linux的Crontab執(zhí)行PHP腳本。

文中提到:如果你的PHP腳本可以通過URL觸發(fā),你可以使用lynx或curl或wget來配置你的Crontab。
其中:

  • lynx : 一個在linux環(huán)境下的輕型文本瀏覽器
  • curl : 一個利用URL規(guī)則在命令行下工作的文件傳輸工具
  • wget : 一個十分常用命令行下載工具

既然都不錯,就隨便選一個,lynx好了,不過有的服務(wù)器上不一定有l(wèi)ynx,需要安裝[2]。

<pre>
wget http://lynx.isc.org/current/lynx2.8.7rel.2.tar.gz
tar zxf lynx2.8.7rel.2.tar.gz
cd lynx2-8-7/
./configure
make
make install
</pre>

這里可能遇到的問題是,lynx依賴于curses圖形庫,而某些linux環(huán)境在安裝時沒有默認安裝這個庫。所以需要手動安裝。
<pre>
wget ftp://invisible-island.net/ncurses/ncurses-5.7.tar.gz
./configure
make
make install
</pre>

在configure過程中可能遇到如下錯誤:[3]
<code>/usr/bin/ld: cannot find -lc</code>
意思是:編譯過程找不到對應(yīng)庫文件。其中,-lxxx表示鏈接庫文件 libxxx.so,一般出現(xiàn)這種錯誤有以下幾種原因:

1.系統(tǒng)缺乏對應(yīng)的庫文件
2.版本不對應(yīng)
3.庫文件的鏈接錯誤
4.庫文件路徑設(shè)置問題

對于情況1和2,可以通過下載安裝lib來解決。
情況3,通過find或者locate指令定位到鏈接文件,查看鏈接文件是否正確的指向了我們希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它
情況4,可以到/etc/ld.so.conf.d目錄下,修改其中任意一份conf文件,(可以自建conf,以方便識別)將lib所在目錄寫進去,然后在終端輸入 ldconfig 更新緩存。

我通過find命令發(fā)現(xiàn)/usr/lib下已經(jīng)存在了libc.so,但不存在libc.a,于是執(zhí)行
<pre>
yum install glibc-static
</pre>

然后make clean,重新編譯curses和lynx。順利安裝好lynx。

用lynx訪問www.git-scm.com

最后,我們該配置crontab了[4]。關(guān)于crontab的使用方法請參考crontab命令詳解。

crontab 命令格式

這里我們想讓系統(tǒng)定時訪問下指定的URL,屬于用戶級定時任務(wù)。所以直接crontab就行了:
<pre>
crontab -e
20-40/5 21 * * 1,3,6 lynx http://www.someexample.com/request.php -dump
</pre>

<p>意思就是在每周一、三、六的晚上9點20到9點40之間每5分鐘訪問一下www.someexample.com/request.php。這樣我們就實現(xiàn)了利用linux系統(tǒng)的crontab命令定時執(zhí)行任務(wù)的目的。</p>


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容