當前位置:首頁 » 編程語言 » linux定時php

linux定時php

發布時間: 2022-09-21 04:16:08

A. 如何使用linux的Crontab定時執行php腳本的方法

我們先從相對比較復雜的伺服器執行php談起。伺服器上安裝了php,就可以執行php文件,無論是否安裝了nginx或Apache這樣的伺服器環境軟體。而Linux中,使用命令行,用CronTab來定時任務,又是絕佳的選擇,而且也是效率最高的選擇。首先,進入命令行模式。作為伺服器的linux一般都默認進入命令行模式的,當然,我們管理伺服器也一般通過putty等工具遠程連接到伺服器,為了方便,我們用root用戶登錄。在命令行中鍵入:
crontab -e

之後就會打開一個文件,並且是非編輯狀態,則是vi的編輯界面,通過敲鍵盤上的i,進入編輯模式,就可以編輯內容。這個文件中的每一行就是一個定時任務,我們新建一行,就是新建一條定時任務(當然是指這一行內按照一定的格式進行書寫)。我們現在來舉個例子,增加一行,內容如下:
00 * ** * lynx -mp https://www.yourdomain.com/script.php

這是什麼意思呢?實際上上面這一行由兩部分組成,前面一部分是時間,後面一部分是操作內容。例如上面這個,
00 * ** *

就是指當當前時間的分鍾數為00時,執行該定時任務。時間部分由5個時間參數組成,分別是:
分時日月周

第1列表示分鍾1~59 每分鍾用或者 */1表示,/n表示每n分鍾,例如*/8就是每8分鍾的意思,下面也是類推
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
整個句子的後面部分就是操作的具體內容。

B. 如何使用Linux的Crontab定時執行PHP腳本的方法

鍵入 crontab
-e 編輯crontab服務文件
------------------------------------------Ubuntu中的linux---------------
安裝lynx包:apt-get isntall lynx
先寫ln.sh腳本:lynx http://10.11.12.49/data_task.php

設置定時:crontab -e
0 1 * * * bash /var/www/test/ln.sh
-------------------------------------------------------------------------
分為兩種情況:
第一種情況:你的php腳本中沒有引入其他PHP文件,也就是說沒有include,require_once等命令的PHP文件
* */1 * * * /usr/local/php/bin/php
/var/www/html/wwwroot/web/script.php (每一小時執行一次script.php)
注意,這樣寫需要把PHP變成可執行的腳本文件。在命令行下,腳本所在目錄
chmod +x script.php
注意:你的script.php文件中一定要在開始處加上: #!/usr/local/php/bin/php -q
,下面是一個完整的script.php文件代碼
<?php
#!/usr/local/php/bin/php -q
session_start();
define( "DB_PASSWORD", "111111" ); // 伺服器登陸密碼
define( "DB_NAME", "db_shopping" ); // 資料庫名稱
define( "DB_USER", "root" ); // 伺服器登陸用戶
define( "DB_HOST", "127.0.0.1" ); // 伺服器IP地址或名稱
define( "DB_PORT", "3306" ); // 伺服器登陸埠號
define( "DB_CHARSET", "utf8" ); // 資料庫默認語言
define( "DB_DEBUG", false ); // 是否設置為調試模式
define( "DB_CLOSE", false ); // 是否主動關閉資料庫連接
$con=mysql_connect(DB_HOST.":".DB_PORT,DB_USER,DB_PASSWORD);
mysql_query ( "SET character_set_connection = ".DB_CHARSET.",
character_set_results = ".DB_CHARSET.", character_set_client =
binary");
if (!$con) die("Mysql Error:".mysql_error());
mysql_select_db(DB_NAME,$con);
//$dates=date()

$sqll="insert into test(NAME,Sex,thisdate,state)
values('love','0','2011-08-11','1')";
$resl=mysql_query($sqll);
echo "成功...";
?>

/usr/local/php/bin/php的意思是:用/usr/local/php/bin/目錄中的php.exe文件來執行
/var/www/html/wwwroot/web/script.php

第二種情況:你的php腳本中有引入其他PHP文件,也就是說有用到include,require_once命令的PHP文件(先寫shell腳本)
上面的方法有一個問題:當script腳本中有include文件時,腳本根本找不對PHP的路徑,php將會在/bin/local/php目錄下找文件,當然找不到。
所以,遇見這種情況,按照下面的方法做:
在終端上輸入如下命令得到sh 和 lynx 程序的路徑:
whereis sh
whereis lynx
or
which sh
which lynx
隨便輸入一個,其中便會返回你要的路徑。如果你的系統里沒有lynx,試試links,w3m,或者
links2,這些是其它的文本模型瀏覽器。這些瀏覽器將會運行你的腳本。
然後你需要創建一個sh文件,用它來調用php文件,通過lynx。假設你的伺服器已經安裝了lynx,sh路徑為
/bin/sh,lynx路徑為 /usr/local/bin/lynx
#!/bin/sh
/usr/local/bin/lynx -source
http://www.yoursite.com/folder/script.php
注意感嘆號
把這個腳本保存為cron-lynx.sh
保存到一個你找得到的地方,比如:

你可以把它放在網站根目錄。
然後再創建一個script.php的文件。當cron運行的時候,將會通過lynx來調用它。這個文件可以通過瀏覽器來訪問

然後編輯主機的crontab,像下面這樣。
*/1 * * * * root /bin/sh
/usr/www/yourdirectory/sh_scripts/cron-lynx.sh
在/bin/sh 和 /usr 間有空格。就這樣就設好了,還有一點要注意的是,你的sh文件和php文件都正確無誤。

===================================================================================

linux下的crontab服務:
1、crontab 是用來讓使用者在固定時間或固定間隔執行程序之用
在linux平台上如果需要實現任務調度功能可以編寫cron腳本來實現。
以某一頻率執行任務
linux預設會啟動crond進程,crond進程不需要用戶啟動、關閉。
crond進程負責讀取調度任務並執行,用戶只需要將相應的調度腳本寫入cron的調度配置文件中。
cron的調度文件有以下幾個:
1.
crontab
2.
cron.d
3.
cron.daily
4.
cron.hourly
5.
cron.monthly
6.
cron.weekly

如果用的任務不是以hourly monthly weekly方式執行,則可以將相應的crontab寫入到crontab
或cron.d目錄中。
示例:
每隔一分鍾執行一次腳本 /opt/bin/test-cron.sh
可以在cron.d新建腳本 echo-date.sh
內容為
*/1 * * * * root /opt/bin/test-cron.sh

2、cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業。由於Cron
是Linux的內置服務,如果它不自動起來,可以用以下的方法啟動、關閉這個服務:
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置

你也可以將這個服務在系統啟動的時候自動啟動:
在/etc/rc.d/rc.local這個腳本的末尾加上:
/sbin/service crond start
現在Cron這個服務已經在進程裡面了,我們就可以用這個服務了

查看服務是否已經運行用 ps -ax | grep cron

3、crontab命令

查看該用戶下的crontab服務是否創建成功, 用 crontab -l
命令
命令 which php 查看linux下安裝的php的路徑
cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些參數與說明:

crontab -u
//設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除沒個用戶的cron服務
crontab -e //編輯某個用戶的cron服務
比如說root查看自己的cron設置:crontab -u root -l
再例如,root想刪除fred的cron設置:crontab -u fred -r
在編輯cron服務時,編輯的內容有一些格式和約定,輸入:crontab -u root -e
進入vi編輯模式,編輯的內容一定要符合下面的格式:*/1 * * * * ls
>> /tmp/ls.txt
任務調度的crond常駐命令crond
是linux用來定期執行程序的命令。當安裝完成操作系統之後,默認便會啟動此
任務調度命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。

crontab命令選項:

-u指定一個用戶

-l列出某個用戶的任務計劃

-r刪除某個用戶的任務

-e編輯某個用戶的任務

4、cron文件語法:


小時


星期
命令

0-59
0-23
1-31
1-12
0-6
command
(取值范圍,0表示周日一般一行對應一個任務)

記住幾個特殊符號的含義:

「*」代表取值范圍內的數字,

「/」代表」每」,

「-」代表從某個數字到某個數字,

「,」分開幾個離散的數字

5、任務調度設置文件的寫法

可用crontab
-e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件

具體格式如下:

Minute Hour Day Month Dayofweek
command

分鍾
小時


天每星期
命令

每個欄位代表的含義如下:

Minute
每個小時的第幾分鍾執行該任務

Hour
每天的第幾個小時執行該任務

Day
每月的第幾天執行該任務

Month
每年的第幾個月執行該任務

DayOfWeek
每周的第幾天執行該任務

Command
指定要執行的程序

在這些欄位里,除了「Command」是每次都必須指定的欄位以外,其它欄位皆為可選

欄位,可視需要決定。對於不指定的欄位,要用「*」來填補其位置。
舉例如下:

5
*
*
*
*
ls
指定每小時的第5分鍾執行一次ls命令

30
5
*
*
*
ls
指定每天的 5:30 執行ls命令

30
7
8
*
*
ls
指定每月8號的7:30分執行ls命令

30
5
8
6
*
ls
指定每年的6月8日5:30執行ls命令

30
6
*
*
0
ls
指定每星期日的6:30執行ls命令[註:0表示星期天,1表示星期1,

以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]

30
3
10,20
*
*
ls
每月10號及20號的3:30執行ls命令[註:「,」用來連接多個不連續的時段]

25
8-11
*
*
*
ls
每天8-11點的第25分鍾執行ls命令[註:「-」用來連接連續的時段]

*/15
*
*
*
*
ls
每15分鍾執行一次ls命令 [即每個小時的第0 15 30 45 60分鍾執行ls命令 ]

30
6
*/10
*
*
ls
每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls 命令。 ]

每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行文件

50
7
*
*
*
root
run-parts
/etc/cron.daily [
註:run-parts參數表示,執行後面目錄中的所有可執行文件。 ]

6、 新增調度任務

新增調度任務可用兩種方法:

1)、在命令行輸入: crontab -e 然後添加相應的任務,wq存檔退出。

2)、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務。

7、 查看調度任務

crontab -l //列出當前的所有調度任務

crontab -l -u jp
//列出用戶jp的所有調度任務

8、 刪除任務調度工作

crontab -r //刪除所有任務調度工作

9、 任務調度執行結果的轉向

例1:每天5:30執行ls命令,並把結果輸出到/jp/test文件中

30 5 * * * ls >/jp/test
2>&1

註:2>&1 表示執行結果及錯誤信息。

編輯/etc/crontab 文件配置cron

cron服務每分鍾不僅要讀一次/var/spool/cron內的所有文件,還需要讀一次
/etc/crontab,因此我們配置這個文件也能運用cron服務做一些事情。

用crontab配置是針對某個用戶的,而編輯/etc/crontab是針對系統的任務。此文件的文件格式是:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root //如果出現錯誤,或者有數據輸出,數據作為郵件發給這個帳號

HOME=/ //使用者運行的路徑,這里是根目錄
# run-parts

01
*
*
*
*
root run-parts
/etc/cron.hourly
//每小時執行/etc/cron.hourly內的腳本

02
4
*
*
*
root run-parts
/etc/cron.daily
//每天執行/etc/cron.daily內的腳本

22
4
*
*
0
root run-parts
/etc/cron.weekly
//每星期執行 /etc/cron.weekly內的腳本

42
4
1
*
*
root run-parts
/etc/cron.monthly
//每月去執行/etc/cron.monthly內的腳本
大家注意」run-parts」這個參數了,如果去掉這個參數的話,後面就可以寫要運行的某個腳本名,而不是文件夾名了

例如:

1) 在命令行輸入: crontab -e 然後添加相應的任務,wq存檔退出。

2)直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務

11 2 21 10 * rm -rf /mnt/fb

C. linux定時任務能執行php文件嗎

可以的,將php的安裝目錄設為環境變數,在定時任務寫 php php路徑/php文件.php設定好執行時間,就可以執行了。

D. Linux下如何定時執行php腳本Linux下如何設置定時任務

crontab -e 編輯crontab服務文件
參數:
*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
時間 程序(這里是shell,如果是php,需要制定php的程序路徑) 腳本路徑

E. 如何使用Linux的Crontab定時執行PHP腳本的方法

首先確保你的php腳本可以在terminal命令行成功執行 然後執行crontab -e,把相同的命令寫到裡面就可以了詳細你可以去後盾人看看,這些都是後盾人裡面的,哪裡有詳細的視頻教學都是高質量,我自己就是在裡面學的。
如何使用Linux的Crontab定時執行PHP腳本的方法
第一階段:前端頁面重構:PC端網站布局、HTML5+CSS3基礎項目、WebAPP頁面布局;

第二階段:JavaScript高級程序設計:原生JavaScript交互功能開發、面向對象開發與ES5/ES6、JavaScript工具庫自主研發;

第三階段:PC端全棧項目開發:jQuery經典特效交互開發、HTTP協議,Ajxa進階與後端開發、前端工程化與模塊化應用、PC端網站開發、PC端管理信息系統前端開發;

第四階段:移動端項目開發:Touch端項目、微信場景項目、應用Vue.js開發WebApp項目、應用Ionic開發WebApp項目、應用React.js開發WebApp;

第五階段:混合(Hybrid)開發:各類混合應用開發;

第六階段:NodeJS全棧開發:WebApp後端系統開發。

F. linux如何創建PHP定時任務

首先創建一個PHP文件:示例內容如下:

<?php
$ch=curl_init();
//設置請求
curl_setopt($ch,CURLOPT_URL,"寫上要請求的URL");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER,0);
$output=curl_exec($ch);
curl_close($ch);
echo date("Y-m-d H:i:s",time())."_".$output."\r\n";
然後給文件可執行許可權:chmod +x demo.php

然後修改定時任務執行的文件:使用命令行:crontab -e 打開定時任務文件,加入:

30 17 * * * /usr/bin/php -f /home/task/crontab.php >> /home/task/task.log
1
解釋一下時間的概念,比如像上面這就相當於每天的17:30分執行任務。完成以上就可以開啟計劃任務了,使用命令行:
service cron start
以上就可以開啟這個PHP定時任務了,同時會將echo 的返回值寫入到task.log文件中。

G. 如何使用Linux的Crontab定時執行PHP腳本的方法

下面介紹Crontab的兩種方法。一、在Crontab中使用PHP執行腳本就像在Crontab中調用普通的shell腳本一樣(具體Crontab用法),使用PHP程序來調用PHP腳本。每一小時執行myscript.php如下:.代碼如下:#crontab-e00****/usr/local/bin/php/home/john/myscript.php/usr/local/bin/php為PHP程序的路徑。二、在Crontab中使用URL執行腳本如果你的PHP腳本可以通過URL觸發,你可以使用lynx或curl或wget來配置你的Crontab。下面的例子是使用Lynx文本瀏覽器訪問URL來每小時執行PHP腳本。Lynx文本瀏覽器默認使用對話方式打開URL。但是,像下面的,我們在lynx命令行中使用-mp選項來把URL的輸出轉換來標准輸出。.代碼如下:00****lynx-mp/myscript.php下面的例子是使用WGET訪問URL來每10分執行PHP腳本。-q選項表示安靜模式。」-Otemp.txt」表示輸出會發送到臨時文件。

H. 如何使用Linux的Crontab定時執行PHP腳本的方法

我們先從相對比較復雜的伺服器執行php談起。伺服器上安裝了php,就可以執行php文件,無論是否安裝了nginx或Apache這樣的伺服器環境軟體。而Linux中,使用命令行,用CronTab來定時任務,又是絕佳的選擇,而且也是效率最高的選擇。
首先,進入命令行模式。作為伺服器的linux一般都默認進入命令行模式的,當然,我們管理伺服器也一般通過putty等工具遠程連接到伺服器,為了方便,我們用root用戶登錄。在命令行中鍵入:
crontab -e

之後就會打開一個文件,並且是非編輯狀態,則是vi的編輯界面,通過敲鍵盤上的i,進入編輯模式,就可以編輯內容。這個文件中的每一行就是一個定時任務,我們新建一行,就是新建一條定時任務(當然是指這一行內按照一定的格式進行書寫)。我們現在來舉個例子,增加一行,內容如下:
00 * ** * lynx -mp https://www.yourdomain.com/script.php

這是什麼意思呢?實際上上面這一行由兩部分組成,前面一部分是時間,後面一部分是操作內容。例如上面這個,
00 * ** *

就是指當當前時間的分鍾數為00時,執行該定時任務。時間部分由5個時間參數組成,分別是:
分時日月周

第1列表示分鍾1~59 每分鍾用或者 */1表示,/n表示每n分鍾,例如*/8就是每8分鍾的意思,下面也是類推
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
整個句子的後面部分就是操作的具體內容。
lynx -mp https://www.yourdomain.com/script.php

意思就是說通過lynx訪問這個url。我們在使用中主要用到lynx、curl、wget來實現對url的遠程訪問,而如果要提高效率,直接用php去執行本地php文件是最佳選擇,例如:
00 */2 * * * /usr/local/bin/php /home/www/script.php

這條語句就可以在每2小時的0分鍾,通過linux內部php環境執行script.php,注意,這里可不是通過url訪問,通過伺服器環境來執行哦,而是直接執行,因為繞過了伺服器環境,所以效率當然要高很多。
好了,已經添加了幾條需要的定時任務了吧。點擊鍵盤上的Esc鍵,輸入「:wq」回車,這樣就保存了設置的定時任務,屏幕上也能看到提示創建了新的定時任務。接下來就是好好寫你的script.php了。
關於CronTab的更多用法這里就不介紹了,如果你想更靈活的使用這個定時任務功能,應該自己再去深入學習一下crontab。

I. linux下如何定時訪問本機上的某個php腳本文件

自己編寫crontab設定計劃任務就是了,
那個服務就是做這些定時的,自動化的工作用的。要寫什麼腳本的,一個命令搞定。
給你個手冊頁自己看吧。
補充回答:
運行這個命令:
crontab
-e
此命令將打開一個文本編輯器以添加新任務。
*
20
*
*
*
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
用對應的文本編輯器命令保存退出(vi編輯器是按esc後打:wq)
如果你對這種方式不熟悉,也可以直接改/etc/crontab,我看到你是要刪除root文件夾內的目錄,假設你有root許可權(因為/etc/crontab所有者是root,並且只有以root身份執行刪除命令才能刪除root
home內的文件),用以下命令打開此文件:
vi
/etc/crontab
將游標移動至最後一行,按o鍵新開一行輸入以下內容:
*
20
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
給你解釋下此行的含義吧,前五個以4個空格分隔開的值依次表示:分、時、日、月、周,如果取所有值就是打*號,如果你想周期性的運行一個任務,crontab也接受范圍指定,比如說一天中的早8點到晚6點每隔一小時(就是每兩小時,將會在8,10,12,14,16,18執行)執行你這個刪除命令這樣寫:
*
8-18/2
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
第一個欄位是分鍾,取值范圍:0-59
第二個欄位是小時。取值范圍:0-23
第三個欄位是一個月中的第幾天,取值范圍:1-31
第四個欄位是一年中的第幾個月,取值范圍:1-12
最後一個欄位是一個星期中的第幾天,以星期天開始依次的取值為0~7,0、7都表示星期天。
下一個欄位是執行該命令的用戶身份,這里是root用戶,最後一個欄位就是定時運行的命令。

J. 如何使用Linux的Crontab定時執行PHP腳本的方法

一、在Crontab中使用PHP執行腳本

就像在Crontab中調用普通的shell腳本一樣(具體Crontab用法),使用PHP程序來調用PHP腳本。
每一小時執行myscript.php如下:
. 代碼如下:

# crontab -e
00 * * * * /usr/local/bin/php /home/john/myscript.php

/usr/local/bin/php為PHP程序的路徑。

二、在Crontab中使用URL執行腳本

如果PHP腳本可以通過URL觸發,可以使用lynx或curl或wget來配置Crontab。
下面的例子是使用Lynx文本瀏覽器訪問URL來每小時執行PHP腳本。Lynx文本瀏覽器默認使用對話方式打開URL。但是,像下面的,我們在lynx命令行中使用-mp選項來把URL的輸出轉換來標准輸出。
. 代碼如下:

00 * * * * lynx -mp http://www.poluoluo.com/myscript.php

下面的例子是使用CURL訪問URL來每5分執行PHP腳本。Curl默認在標准輸出顯示輸出。使用」curl -o」選項,也可以把腳本的輸出轉儲到臨時文件。
. 代碼如下:

*/5 * * * * /usr/bin/curl -o temp.txt http://www.poluoluo.com/myscript.php

下面的例子是使用WGET訪問URL來每10分執行PHP腳本。-q選項表示安靜模式。」-O temp.txt」表示輸出會發送到臨時文件。

熱點內容
製作產業項目視頻腳本 發布:2025-01-11 04:10:14 瀏覽:184
編程是天賦嗎 發布:2025-01-11 04:10:04 瀏覽:256
軟體編程培訓學院 發布:2025-01-11 04:00:18 瀏覽:845
路虎攬運配置怎麼查詢 發布:2025-01-11 03:42:51 瀏覽:393
仿站源碼 發布:2025-01-11 03:42:05 瀏覽:40
騰訊的雲伺服器 發布:2025-01-11 03:40:47 瀏覽:569
百分之十的演算法 發布:2025-01-11 03:34:30 瀏覽:642
java16進制tostring 發布:2025-01-11 03:24:21 瀏覽:721
mql4c語言 發布:2025-01-11 03:24:20 瀏覽:255
科爾訪問蘇聯 發布:2025-01-11 03:15:47 瀏覽:331