日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何在Linux上實現(xiàn)定時任務(wù)的分頁執(zhí)行(linux定時任務(wù)分頁執(zhí)行)

如何在Linux 上實現(xiàn)定時任務(wù)的分頁執(zhí)行

創(chuàng)新互聯(lián)服務(wù)項目包括萬全網(wǎng)站建設(shè)、萬全網(wǎng)站制作、萬全網(wǎng)頁制作以及萬全網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,萬全網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到萬全省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

定時任務(wù)是Linux 系統(tǒng)管理員經(jīng)常用到的一種任務(wù)調(diào)度方式,可以讓系統(tǒng)按照預(yù)設(shè)的時間自動進(jìn)行一系列任務(wù)的執(zhí)行。但是對于大量數(shù)據(jù)處理的任務(wù)而言,一次性執(zhí)行可能會過于耗時,導(dǎo)致系統(tǒng)資源占用過多,甚至出現(xiàn)程序崩潰等情況。因此,如何在Linux 上實現(xiàn)定時任務(wù)的分頁執(zhí)行成為一項具有實用價值的技術(shù)。

一、什么是定時執(zhí)行任務(wù)

在Linux 上,定時執(zhí)行任務(wù)是通過Cron服務(wù)來實現(xiàn)的。Cron 服務(wù)是一個用于定時執(zhí)行程序或腳本的守護(hù)進(jìn)程,它會在指定的時間自動執(zhí)行指定的任務(wù)。 Cron 服務(wù)的配置文件為“/etc/crontab”和“/etc/cron.d/”,大部分的Linux 發(fā)行版都默認(rèn)包含了Cron 服務(wù)。

在Cron 服務(wù)中,用戶可以通過命令行輸入如下的命令行指令來編寫一個定時任務(wù):

$ crontab -e

在編輯器中輸入以下內(nèi)容后保存退出即可:

* * * * * /path/to/your/command

這個任務(wù)會每分鐘執(zhí)行一次。

二、如何實現(xiàn)定時任務(wù)的分頁執(zhí)行

對于需要處理大規(guī)模數(shù)據(jù)的任務(wù),如何分頁執(zhí)行成為一個重要的問題。以日志分析為例,如果一天的日志文件有幾百GB 的大小,一次性處理不僅效率低下,而且容易出現(xiàn)內(nèi)存占用過多,系統(tǒng)負(fù)載過重等問題。因此,我們需要將這個任務(wù)分隔成多個小任務(wù),并分頁執(zhí)行,以達(dá)到高速處理的目的。

1.分頁處理數(shù)據(jù)

將大規(guī)模的數(shù)據(jù)分頁處理成小文件,通常我們將大文件按照規(guī)定的頁數(shù)分解成多個小文件,然后分頁進(jìn)行處理。

假設(shè)我們需要處理一個20GB 的日志文件,我們可以將其分成100個小文件,每個小文件大小為200MB ,同時我們限制每次處理5個小文件(也就是1GB 的數(shù)據(jù))。

$ split -b 200M logfile.log

$ ls

logfile.log xaa xab xac ……..xaz

這樣我們就將其中一個20GB 的日志文件分成了100個200MB 的文件,文件名從xaa-xaz ,接下來就可以開始分頁進(jìn)行處理。

2.使用Shell 腳本進(jìn)行分頁執(zhí)行

當(dāng)我們需要將大規(guī)模數(shù)據(jù)分頁處理時,我們可以編寫Shell 腳本。通常,我們需要將每個小文件(頁)文件名進(jìn)行傳遞,并在腳本中按順序執(zhí)行每一頁。在每一頁處理完畢后,我們需要將處理結(jié)果記錄在一個日志文件中。我們需要將所有數(shù)據(jù)處理的日志文件打包成一個文件,方便存儲與查看。

#!/bin/sh

# 該腳本用于按頁執(zhí)行指定任務(wù)

# 定義日志文件名稱及路徑

logfile=task.log

logpath=/var/log/

# 定義數(shù)據(jù)文件路徑

datapath=/data/

# 定義每頁數(shù)據(jù)文件的大?。ㄗ止?jié)數(shù))

split_size=202315200

# 獲取所有小數(shù)據(jù)文件

filelist=`ls $datapath`

# 記錄處理過的頁數(shù)

pagenum=0

# 每次處理5頁數(shù)據(jù)

process_page=5

# 開始分頁執(zhí)行

for pagefile in $filelist

do

echo $(date ‘+%Y-%m-%d %H:%M:%S’) “開始處理數(shù)據(jù):” $pagefile >> $logpath/$logfile

# 處理當(dāng)前數(shù)據(jù)頁

process_stuff $datapath/$pagefile

# 記錄處理數(shù)據(jù)的日志

echo $(date ‘+%Y-%m-%d %H:%M:%S’) “處理數(shù)據(jù):” $pagefile “成功!” >> $logpath/$logfile

# 更新已經(jīng)處理的頁數(shù)

let pagenum+=1

# 判斷是否需要休眠

if [ $(($pagenum%$process_page)) -eq 0 ]; then

sleep 1m

echo $(date ‘+%Y-%m-%d %H:%M:%S’) “休眠1分鐘” >> $logpath/$logfile

fi

done

# 打包所有的處理日志

tar -zcf result.tar.gz $logpath/*.log

3.編寫定時任務(wù)

編寫完成Shell 腳本后,我們需要在Cron 中添加定時任務(wù)。通常我們將任務(wù)分頁執(zhí)行時間設(shè)置為凌晨,以避免影響系統(tǒng)的正常使用。

# 每天凌晨1點開始執(zhí)行分頁任務(wù)

0 1 * * * /data/run-task.sh

4.啟動Cron 服務(wù)并查看腳本執(zhí)行記錄

我們在Cron 中添加了新的任務(wù)后,需要啟動Cron 服務(wù),只需要輸入以下命令:

$ systemctl start cron

同時我們可以查看Cron 執(zhí)行記錄并檢查指定任務(wù)是否按分頁執(zhí)行。通過以下命令可以查看所有用戶的Cron 記錄:

$ grep CRON /var/log/syslog

在執(zhí)行完以上命令后,我們可以在日志記錄中找到對應(yīng)的任務(wù)執(zhí)行記錄。

結(jié)論:

以上就是如何在Linux 上實現(xiàn)定時任務(wù)的分頁執(zhí)行。在進(jìn)行大規(guī)模數(shù)據(jù)處理時,我們可以通過使用Shell 腳本和Cron 服務(wù),將數(shù)據(jù)任務(wù)分成多個小任務(wù)進(jìn)行分頁處理,以大幅提高處理的效率,同時避免出現(xiàn)內(nèi)存泄漏和系統(tǒng)負(fù)載過重等情況。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù)!

Linux crontab怎么定時執(zhí)行任務(wù)

crontab 需要由root用戶部署,“su – ” 切換到root;

”crontab -e” 進(jìn)入crontab 編輯狀態(tài);

輸入” * * * * * /usr/bin/bash /home/ganlin/ganlin.sh”, 這代表每秒執(zhí)行一次腳本。

部署完成后 輸入 ”crontab -l” 查看crontab 中所有部褲稿署的內(nèi)容;

腳本更好不要放在/home目錄下,行純老可以在腳本中檔升寫入一行標(biāo)準(zhǔn)輸出用來在部署完成后測試結(jié)果用。

“> /dev/null 2>&1“ 這樣寫得結(jié)果是就看不到標(biāo)準(zhǔn)輸出了, /dev/null 代表一個虛擬的設(shè)備 把標(biāo)準(zhǔn)輸出寫到一個不存在的設(shè)備中去了。

linux使用crontab實現(xiàn)PHP執(zhí)行計劃定時任務(wù)

首先說說cron,它是一個linux下的定時執(zhí)行工具。根用戶以外的用戶可以使用

crontab

工具來配置

cron

任務(wù)。所有用戶定義的

crontab

都被保存在/var/spool/cron

目錄中,并洞滑衡使用創(chuàng)建它們的用戶身份來執(zhí)行。要以某用戶身份創(chuàng)建一個

crontab

項目,登錄為該用戶,然后鍵入

crontab

-e

命令來編輯該用戶的

crontab。該文件使用的格式和

/etc/crontab

相同。當(dāng)對

crontab

所做的改變被保存后,該

crontab

文件就會根據(jù)該用戶名被保存,并寫入文件

/var/spool/cron/username

中。cron

守護(hù)進(jìn)程每分鐘都檢查

/etc/crontab

文件、etc/cron.d/

目錄、以及

/var/spool/cron

目錄中的改變。如果發(fā)現(xiàn)了改變,它們就會被載入內(nèi)存。這樣,當(dāng)某個

crontab

文件改變后就不必重新啟動守護(hù)進(jìn)程了。

安裝crontab:

yum

install

crontabs

說明:

/in/service

crond

start

//啟動服務(wù)

/in/service

crond

stop

//關(guān)閉服務(wù)

/in/service

crond

restart

//重啟服務(wù)

/in/service

crond

reload

//重新載入配置

查看crontab服務(wù)狀態(tài):service

crond

status

手動啟動crontab服務(wù):service

crond

start

查看crontab服務(wù)是否已設(shè)置為開機(jī)啟動,執(zhí)行命令:ntsysv

加入開機(jī)自動啟動:

chkconfig

–level

crond

on

crontab命令:

功能說明:設(shè)置計時器。

語  法:crontab

>

crontab

>

補充說明:cron是一個常駐服務(wù),它提供計時器的功能,讓用戶在特定的時間得讓渣以執(zhí)行預(yù)設(shè)的指令或程序。只要用戶會編輯計時器的配置文件,就可以使

用計時器的功能。其配置文件格式如下:

Minute

Hour

Day

Month

DayOFWeek

Command

參  數(shù):

-e

 編輯該用戶的計時器設(shè)置。

-l

 列出該用戶的計時器設(shè)置。

-r

 刪除該用戶的計時器設(shè)置。

-u

 指定要設(shè)定計時器的用戶名稱。

crontab

格式:

基本格式

:

分鐘  

小時  

日  

月  

星期  

命令

*

*     

*  納做 

*    

*      

*

第1列表示分鐘1~59

每分鐘用*或者

*/1表示

第2列表示小時1~23(0表示0點)

第3列表示日期1~31

第4列

表示月份1~12

第5列標(biāo)識號星期0~6(0表示星期天)

第6列要運行的命令

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

“*”代表取值范圍內(nèi)的數(shù)字,

“/”代表”每”,

“-”代表從某個數(shù)字到某個數(shù)字,

“,”分開幾個離散的數(shù)字

#

Use

the

hash

sign

to

prefix

a

comment

#

+—————-

minute

(0

59)

#

|

+————-

hour

(0

23)

#

|

|

+———-

day

of

month

(1

31)

#

|

|

|

+——-

month

(1

12)

#

|

|

|

|

+—-

day

of

week

(0

7)

(Sunday=0

or

7)

#

|

|

|

|

|

#

*

*

*

*

*

command

to

be

executed

crontab幾個例子如下:

(1)之一個例子。

*

*

*

/etc/init.d/nginx

restart

每晚的21:30重啟

nginx。

(2)第二個例子,也就是本教程測試的例子

*

*

*

*

*

/usr/bin/php

-f

/root/test.php

>>

test.log

每一分鐘執(zhí)行/root/test.php文件,將結(jié)果輸出到test.log中。

完成了上面基礎(chǔ)工作后,就來看看怎么使用crontab定時執(zhí)行PHP腳本:

(1)我在/root下新建test.php文件,內(nèi)容如下:

復(fù)制代碼

代碼如下:

說明:你可以用whereis

php查找php執(zhí)行文件位置。

(2)然后crontab

-e編寫如下shell:

復(fù)制代碼

代碼如下:

*

*

*

*

*

/usr/bin/php

-f

/root/test.php

>>

test.log

說明:test.php必須為可執(zhí)行文件:chmod

+x

test.php

測試結(jié)果很正常,截圖如下:

當(dāng)然你可以用使用crontab

-e繼續(xù)添加任務(wù),在/var/spool/cron下你可以看到一個root文件。

關(guān)于linux定時任務(wù)分頁執(zhí)行的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

香港云服務(wù)器機(jī)房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!


當(dāng)前標(biāo)題:如何在Linux上實現(xiàn)定時任務(wù)的分頁執(zhí)行(linux定時任務(wù)分頁執(zhí)行)
文章分享:http://www.dlmjj.cn/article/cddossp.html