1、crontab -e添加
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、沾益ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的沾益網(wǎng)站制作公司
0 6 1 1 * date;
2、crontab -l檢查
3、分鐘 小時 天 月 周 計劃任務(wù);
4、0~59 表示分
0~23 表示小時
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
鍵入 crontab
-e 編輯crontab服務(wù)文件
------------------------------------------Ubuntu中的linux---------------
安裝lynx包:apt-get isntall lynx
先寫ln.sh腳本:lynx
設(shè)置定時: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 (每一小時執(zhí)行一次script.php)
注意,這樣寫需要把PHP變成可執(zhí)行的腳本文件。在命令行下,腳本所在目錄
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" ); // 服務(wù)器登陸密碼
define( "DB_NAME", "db_shopping" ); // 數(shù)據(jù)庫名稱
define( "DB_USER", "root" ); // 服務(wù)器登陸用戶
define( "DB_HOST", "127.0.0.1" ); // 服務(wù)器IP地址或名稱
define( "DB_PORT", "3306" ); // 服務(wù)器登陸端口號
define( "DB_CHARSET", "utf8" ); // 數(shù)據(jù)庫默認語言
define( "DB_DEBUG", false ); // 是否設(shè)置為調(diào)試模式
define( "DB_CLOSE", false ); // 是否主動關(guān)閉數(shù)據(jù)庫連接
$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文件來執(zhí)行
/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
隨便輸入一個,其中便會返回你要的路徑。如果你的系統(tǒng)里沒有l(wèi)ynx,試試links,w3m,或者
links2,這些是其它的文本模型瀏覽器。這些瀏覽器將會運行你的腳本。
然后你需要創(chuàng)建一個sh文件,用它來調(diào)用php文件,通過lynx。假設(shè)你的服務(wù)器已經(jīng)安裝了lynx,sh路徑為
/bin/sh,lynx路徑為 /usr/local/bin/lynx
#!/bin/sh
/usr/local/bin/lynx -source
注意感嘆號
把這個腳本保存為cron-lynx.sh
保存到一個你找得到的地方,比如:
你可以把它放在網(wǎng)站根目錄。
然后再創(chuàng)建一個script.php的文件。當cron運行的時候,將會通過lynx來調(diào)用它。這個文件可以通過瀏覽器來訪問。
然后編輯主機的crontab,像下面這樣。
*/1 * * * * root /bin/sh
/usr/www/yourdirectory/sh_scripts/cron-lynx.sh
在/bin/sh 和 /usr 間有空格。就這樣就設(shè)好了,還有一點要注意的是,你的sh文件和php文件都正確無誤。
===================================================================================
linux下的crontab服務(wù):
1、crontab 是用來讓使用者在固定時間或固定間隔執(zhí)行程序之用
在linux平臺上如果需要實現(xiàn)任務(wù)調(diào)度功能可以編寫cron腳本來實現(xiàn)。
以某一頻率執(zhí)行任務(wù)
linux缺省會啟動crond進程,crond進程不需要用戶啟動、關(guān)閉。
crond進程負責讀取調(diào)度任務(wù)并執(zhí)行,用戶只需要將相應(yīng)的調(diào)度腳本寫入cron的調(diào)度配置文件中。
cron的調(diào)度文件有以下幾個:
1.
crontab
2.
cron.d
3.
cron.daily
4.
cron.hourly
5.
cron.monthly
6.
cron.weekly
如果用的任務(wù)不是以hourly monthly weekly方式執(zhí)行,則可以將相應(yīng)的crontab寫入到crontab
或cron.d目錄中。
示例:
每隔一分鐘執(zhí)行一次腳本 /opt/bin/test-cron.sh
可以在cron.d新建腳本 echo-date.sh
內(nèi)容為
*/1 * * * * root /opt/bin/test-cron.sh
2、cron是一個linux下的定時執(zhí)行工具,可以在無需人工干預(yù)的情況下運行作業(yè)。由于Cron
是Linux的內(nèi)置服務(wù),如果它不自動起來,可以用以下的方法啟動、關(guān)閉這個服務(wù):
/sbin/service crond start //啟動服務(wù)
/sbin/service crond stop //關(guān)閉服務(wù)
/sbin/service crond restart //重啟服務(wù)
/sbin/service crond reload //重新載入配置
你也可以將這個服務(wù)在系統(tǒng)啟動的時候自動啟動:
在/etc/rc.d/rc.local這個腳本的末尾加上:
/sbin/service crond start
現(xiàn)在Cron這個服務(wù)已經(jīng)在進程里面了,我們就可以用這個服務(wù)了
查看服務(wù)是否已經(jīng)運行用 ps -ax | grep cron
3、crontab命令
查看該用戶下的crontab服務(wù)是否創(chuàng)建成功, 用 crontab -l
命令
命令 which php 查看linux下安裝的php的路徑
cron服務(wù)提供crontab命令來設(shè)定cron服務(wù)的,以下是這個命令的一些參數(shù)與說明:
crontab -u
//設(shè)定某個用戶的cron服務(wù),一般root用戶在執(zhí)行這個命令的時候需要此參數(shù)
crontab -l //列出某個用戶cron服務(wù)的詳細內(nèi)容
crontab -r //刪除沒個用戶的cron服務(wù)
crontab -e //編輯某個用戶的cron服務(wù)
比如說root查看自己的cron設(shè)置:crontab -u root -l
再例如,root想刪除fred的cron設(shè)置:crontab -u fred -r
在編輯cron服務(wù)時,編輯的內(nèi)容有一些格式和約定,輸入:crontab -u root -e
進入vi編輯模式,編輯的內(nèi)容一定要符合下面的格式:*/1 * * * * ls
/tmp/ls.txt
任務(wù)調(diào)度的crond常駐命令crond
是linux用來定期執(zhí)行程序的命令。當安裝完成操作系統(tǒng)之后,默認便會啟動此
任務(wù)調(diào)度命令。crond命令每分鍾會定期檢查是否有要執(zhí)行的工作,如果有要執(zhí)行的工作便會自動執(zhí)行該工作。
crontab命令選項:
-u指定一個用戶
-l列出某個用戶的任務(wù)計劃
-r刪除某個用戶的任務(wù)
-e編輯某個用戶的任務(wù)
4、cron文件語法:
分
小時
日
月
星期
命令
0-59
0-23
1-31
1-12
0-6
command
(取值范圍,0表示周日一般一行對應(yīng)一個任務(wù))
記住幾個特殊符號的含義:
“*”代表取值范圍內(nèi)的數(shù)字,
“/”代表”每”,
“-”代表從某個數(shù)字到某個數(shù)字,
“,”分開幾個離散的數(shù)字
5、任務(wù)調(diào)度設(shè)置文件的寫法
可用crontab
-e命令來編輯,編輯的是/var/spool/cron下對應(yīng)用戶的cron文件,也可以直接修改/etc/crontab文件
具體格式如下:
Minute Hour Day Month Dayofweek
command
分鐘
小時
天
月
天每星期
命令
每個字段代表的含義如下:
Minute
每個小時的第幾分鐘執(zhí)行該任務(wù)
Hour
每天的第幾個小時執(zhí)行該任務(wù)
Day
每月的第幾天執(zhí)行該任務(wù)
Month
每年的第幾個月執(zhí)行該任務(wù)
DayOfWeek
每周的第幾天執(zhí)行該任務(wù)
Command
指定要執(zhí)行的程序
在這些字段里,除了“Command”是每次都必須指定的字段以外,其它字段皆為可選
字段,可視需要決定。對于不指定的字段,要用“*”來填補其位置。
舉例如下:
5
*
*
*
*
ls
指定每小時的第5分鐘執(zhí)行一次ls命令
30
5
*
*
*
ls
指定每天的 5:30 執(zhí)行l(wèi)s命令
30
7
8
*
*
ls
指定每月8號的7:30分執(zhí)行l(wèi)s命令
30
5
8
6
*
ls
指定每年的6月8日5:30執(zhí)行l(wèi)s命令
30
6
*
*
ls
指定每星期日的6:30執(zhí)行l(wèi)s命令[注:0表示星期天,1表示星期1,
以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30
3
10,20
*
*
ls
每月10號及20號的3:30執(zhí)行l(wèi)s命令[注:“,”用來連接多個不連續(xù)的時段]
25
8-11
*
*
*
ls
每天8-11點的第25分鐘執(zhí)行l(wèi)s命令[注:“-”用來連接連續(xù)的時段]
*/15
*
*
*
*
ls
每15分鐘執(zhí)行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執(zhí)行l(wèi)s命令 ]
30
6
*/10
*
*
ls
每個月中,每隔10天6:30執(zhí)行一次ls命令[即每月的1、11、21、31日是的6:30執(zhí)行一次ls 命令。 ]
每天7:50以root 身份執(zhí)行/etc/cron.daily目錄中的所有可執(zhí)行文件
50
7
*
*
*
root
run-parts
/etc/cron.daily [
注:run-parts參數(shù)表示,執(zhí)行后面目錄中的所有可執(zhí)行文件。 ]
6、 新增調(diào)度任務(wù)
新增調(diào)度任務(wù)可用兩種方法:
1)、在命令行輸入: crontab -e 然后添加相應(yīng)的任務(wù),wq存盤退出。
2)、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應(yīng)的任務(wù)。
7、 查看調(diào)度任務(wù)
crontab -l //列出當前的所有調(diào)度任務(wù)
crontab -l -u jp
//列出用戶jp的所有調(diào)度任務(wù)
8、 刪除任務(wù)調(diào)度工作
crontab -r //刪除所有任務(wù)調(diào)度工作
9、 任務(wù)調(diào)度執(zhí)行結(jié)果的轉(zhuǎn)向
例1:每天5:30執(zhí)行l(wèi)s命令,并把結(jié)果輸出到/jp/test文件中
30 5 * * * ls /jp/test
21
注:21 表示執(zhí)行結(jié)果及錯誤信息。
編輯/etc/crontab 文件配置cron
cron服務(wù)每分鐘不僅要讀一次/var/spool/cron內(nèi)的所有文件,還需要讀一次
/etc/crontab,因此我們配置這個文件也能運用cron服務(wù)做一些事情。
用crontab配置是針對某個用戶的,而編輯/etc/crontab是針對系統(tǒng)的任務(wù)。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出現(xiàn)錯誤,或者有數(shù)據(jù)輸出,數(shù)據(jù)作為郵件發(fā)給這個帳號
HOME=/ //使用者運行的路徑,這里是根目錄
# run-parts
01
*
*
*
*
root run-parts
/etc/cron.hourly
//每小時執(zhí)行/etc/cron.hourly內(nèi)的腳本
02
4
*
*
*
root run-parts
/etc/cron.daily
//每天執(zhí)行/etc/cron.daily內(nèi)的腳本
22
4
*
*
root run-parts
/etc/cron.weekly
//每星期執(zhí)行 /etc/cron.weekly內(nèi)的腳本
42
4
1
*
*
root run-parts
/etc/cron.monthly
//每月去執(zhí)行/etc/cron.monthly內(nèi)的腳本
大家注意”run-parts”這個參數(shù)了,如果去掉這個參數(shù)的話,后面就可以寫要運行的某個腳本名,而不是文件夾名了
例如:
1) 在命令行輸入: crontab -e 然后添加相應(yīng)的任務(wù),wq存盤退出。
2)直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應(yīng)的任務(wù)
11 2 21 10 * rm -rf /mnt/fb
如果只是執(zhí)行一次,用at命令就可以了。如果是定期執(zhí)行,可以使用crontab。
ps:根據(jù)linux發(fā)行版不同,這兩個命令第一次使用時可能要做些準備工作,比如可能在/var/spool/cron下沒有某些文件或沒權(quán)限,要touch一下或chmod一下。
linux定時執(zhí)行任務(wù)命令是我們在日常工作中經(jīng)常用的,一般情況下,我們都是通過linux的crontab軟件來實現(xiàn),crontab是定時來執(zhí)行一個命令或者一個腳本;但是如果你臨時只執(zhí)行一次命令的話,那么我們也可以采用at命令,同時可以實現(xiàn)我們的目標。
先從crontab開始分享,我們一般通過命令 crontab -l 來查看已經(jīng)定時執(zhí)行的任務(wù),我們要新增呢,我們在命令行輸入
# crontab -e
如果第一次執(zhí)行,他會提示你選擇默認編譯器,一般我選擇vim(vi、nano也可以)
我舉例定時關(guān)機說明:
分 時 日 月 周 命令
0 1 * * 1 /sbin/shutdown -h now
這個意思就是在每周一的一點執(zhí)行 /sbin/shutdown定時關(guān)機(root下才可以關(guān)機)當然你可以寫個腳本,給予執(zhí)行權(quán)限(x),然后輸入腳本的絕對路徑,這里也可以定時執(zhí)行。
定時很簡單吧,其實linux就是要多用多操作多犯錯(非生產(chǎn)環(huán)境)才能成長。
下篇文章我分析at命令用法。
文章來源
這樣寫不行。
這樣寫的意思是, 在每個月的第一天, 每分鐘執(zhí)行一次work.sh
應(yīng)該這么寫:
0?0?1?*?*?root?/tmp/work.sh
簡介
at定時任務(wù),指定一個時間執(zhí)行一個任務(wù),只能執(zhí)行一次。需要安裝at服務(wù),apt-get install at;
創(chuàng)建at任務(wù)
創(chuàng)建at任務(wù)方式有兩種,從文件輸入和從控制臺輸入。以下分別用兩種方式創(chuàng)建1分鐘后將當前時間寫入 home/result 文件的命令
1、從文件輸入
2、從命令行輸入
注意此處的是ctrl+d 按鍵。
atq 和 atrm命令
atq查看at定時隊列命令,atrm刪除某個定時任務(wù)命令.
附錄
1、at時間定義
at允許使用一套相當復雜的指定時間的方法。?
1)能夠接受在當天的hh:mm(小時:分鐘)式的時間指定。假如該時間已過去,那么就放在第二天執(zhí)行。?例如:04:00?
2)能夠使用midnight(深夜),noon(中午),teatime(飲茶時間,一般是下午4點)等比較模糊的詞語來指定時間。?
3)能夠采用12小時計時制,即在時間后面加上AM(上午)或PM(下午)來說明是上午還是下午。?例如:12pm?
4)能夠指定命令執(zhí)行的具體日期,指定格式為month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必須跟在指定時間的后面。?例如:04:00 2009-03-1?
5)能夠使用相對計時法。指定格式為:now + count time-units ,now就是當前時間,time-units是時間單位,這里能夠是minutes(分鐘)、hours(小時)、days(天)、weeks(星期)。count是時間的數(shù)量,幾天,幾小時。?例如:now + 5 minutes 04pm + 3 days?
6)能夠直接使用today(今天)、tomorrow(明天)來指定完成命令的時間。
名稱欄目:linux每個月執(zhí)行命令 linux定時任務(wù)每周一執(zhí)行
本文來源:http://muchs.cn/article0/hjdjoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、企業(yè)建站、軟件開發(fā)、商城網(wǎng)站、網(wǎng)站策劃、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)