導航:首頁 > 編程系統 > linux每5秒執行

linux每5秒執行

發布時間:2023-05-15 03:35:02

『壹』 如何使用linux的Crontab定時執行PHP腳本的方法

寫好要執行的PHP文件
然後使用Crontab 對應的時間格式等進行執行即可
linux crontab&每隔10秒執行一次 linux下定時執行任務的方法
=============CRONTAB執行PHP文件============
原理:Crontab sleep結合實現每N秒執行文件,延時方法 sleep N
注意:
60必須能整除間隔的秒數(沒有餘數),例如間隔的秒數是2,4,6,10,12等。
如果間隔的秒數太少,例如2秒執行一次,這樣就需要在crontab 加入60/2=30條語句。不建議使用此方法,可以使用下面介紹的第二種方法。
在LINUX中你應該先輸入crontab -e,
然後就會有個vi編輯界面,
再輸入0 3 * * 1 /clearigame2內容到裡面
:wq 保存退出。
在LINUX中,周期執行的任務一般由cron這個守護進程來處理[ps -ef|grep cron]。
cron讀取一個或多個配置文件,這些配置文件中包含了命令行及其調用時間。
cron的配置文件稱為「crontab」,是「cron table」的簡寫。
一、cron在3個地方查找配置文件:
1、/var/spool/cron/ 這個目錄下存放的是每個用戶包括root的crontab任務,每個任務以創建者的名字命名,比如tom建的crontab任務對應的文件就是/var/spool/cron/tom。
一般一個用戶最多隻有一個crontab文件。
二、/etc/crontab 這個文件負責安排由系統管理員制定的維護系統以及其他任務的crontab。
三、/etc/cron.d/ 這個目錄用來存放任何要執行的crontab文件或腳本。
四、許可權
crontab許可權問題到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
用法如下:
1、如果兩個文件都不存在,則只有root用戶才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,則只有列在cron.allow文件里的用戶才能使用crontab命令,如果root用戶也不在裡面,則root用戶也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,則只有列在cron.deny文件裡面的用戶不能使用crontab命令,其它用戶都能使用。
4、如果兩個文件都存在,則列在cron.allow文件中而且沒有列在cron.deny中的用戶可以使用crontab,如果兩個文件中都有同一個用戶,
以cron.allow文件裡面是否有該用戶為准,如果cron.allow中有該用戶,則可以使用crontab命令。
在crontab文件中如何輸入需要執行的命令和時間。該文件中每行都包括六個域,其中前五個域是指定命令被執行的時間,最後一個域是要被執行的命令。
每個域之間使用空格或者製表符分隔。格式如下:
minute hour day-of-month month-of-year day-of-week commands
合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday) commands(代表要執行的腳本)
除了數字還有幾個個特殊的符號就是"*"、"/"和"-"、",",*代表所有的取值范圍內的數字,"/"代表每的意思,"/5"表示每5個單位,"-"代表從某個數字到某個數字,","分開幾個離散的數字。
基本格式 :
*****command
分 時 日 月 周 命令
第1列表示分鍾1~59 每分鍾用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
crontab文件的一些例子:
#每晚的21:30重啟apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
#每月1、10、22日
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#每天早上6點10分
10 6 * * * date
#每兩個小時
0 */2 * * * date
#晚上11點到早上8點之間每兩個小時,早上8點
0 23-7/2,8 * * * date
#每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 11 4 * mon-wed date
#1月份日早上4點
0 4 1 jan * date
很多時候,我們計劃任務需要精確到秒來執行,根據以下方法,可以很容易地以秒執行任務。
以下方法將每10秒執行一次#執行PHP文件
# crontab -e
* * * * * php /www/web/test.php
* * * * * sleep 10; php /www/web/test.php
* * * * * sleep 20; php /www/web/test.php
* * * * * sleep 30; php /www/web/test.php
* * * * * sleep 40; php /www/web/test.php
* * * * * sleep 50; php /www/web/test.php
每5秒執行一次
* * * * * for i in `seq 120`; do awesome_scripts& sleep 0.5; done
===================執行腳本==================
原理:每分鍾執行腳本,使用for語句循環實現每N秒執行文件
注意:如果60不能整除間隔的秒數,則需要調整執行的時間。例如需要每7秒執行一次,就需要找到7與60的最小公倍數,7與60的最小公倍數是420(即7分鍾)。
1.vim crontab1.sh
#!/bin/bash

step=2 #間隔的秒數,不能大於60

for (( i = 0; i < 60; i=(i+step) )); do
$(php '/www/web/test.php')
sleep $step
done

exit 0
2.crontab -e 執行腳本 每分鍾執行
# m h dom mon dow command
* * * * * /home/php/crontab/crontab.sh
每7分鍾執行一次,60*7 = 420,則循環的時候循環最大是420;則 crontab.sh step的值為7,循環結束條件i < 420, crontab -e可以輸入以下語句來實現
# m h dom mon dow command
*/7 * * * * /home/php/crontab/crontab.sh

『貳』 linux crontab實現每秒執行

linux crontab 實現定時任務非常方便

基本格式 :
* * * * * command
分 時 日 月 周 命令
第1列表示分鍾1~59 每分鍾用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識悔毀號星期0~6(0表示星期天)
第6列要運行的命令

crontab文件的一些例子:
每晚的21:30重啟apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
每月1、10、22日
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
每天早上6點10分
10 6 * * * date
每兩個小時
0 */2 * * * date
晚上11點到友前首早上8點之間每兩個小時,早上8點
0 23-7/2,8 * * * date
每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 11 4 * mon-wed date
1月份日早上4點
0 4 1 jan * date
crontab最小維度是分鍾,想實現秒級別的方式有兩種

2.在shell腳本中實現

vim test.sh

crontab -e

在執行crontab的是經常碰到找好數不到命令的情況,這時候是path的問題制定path即可

例如
crontab -e

『叄』 linux每10秒執行一次

test.sh內容如下:

mysql -uroot -p3g2win <<EOF
use public;
update test set num=num+FLOOR(1 + (RAND() * 10));
quit
EOF```

解釋:
在學習Linux的過程中,常會看到一些終端命令或者程序中有">/dev/null 2>&1 "出現,由於已經遇到了好幾次了,為了理解清楚,不妨花點時間網路或者google一下相關的知識。

0:表示猛念擾鍵盤輸入(stdin)
1:表示標准輸出(stdout),系統默認是1
2:表示錯誤輸出(stderr)

command >/dev/null 2>&1 & == command 1>/dev/null 2>&1 &

1)command:表示shell命令或者為一個可執行程序枝旦
2)>:表示重定向到哪裡
3)/dev/null:表示Linux的空設高臘備文件
4)2:表示標准錯誤輸出
5)&1:&表示等同於的意思,2>&1,表示2的輸出重定向等於於1
6)&:表示後台執行,即這條指令執行在後台運行

1>/dev/null:表示標准輸出重定向到空設備文件,也就是不輸出任何信息到終端,不顯示任何信息。
2>&1:表示標准錯誤輸出重定向等同於標准輸出,因為之前標准輸出已經重定向到了空設備文件,所以標准錯誤輸出也重定向到空設備文件。

這條命令的意思就是在後台執行這個程序,並將錯誤輸出2重定向到標准輸出1,然後將標准輸出1全部放到/dev/null文件,也就是清空.
所以可以看出" >/dev/null 2>&1 "常用來避免shell命令或者程序等運行中有內容輸出。

『肆』 在linux里 如何用crontab實現每5秒執行一次

我也是網路來的,

原文地址:網頁鏈接

『伍』 如何讓linux定時任務crontab按秒執行

crontab的粒度最小是到分鍾,但是我們還是可以通過變通的方法做到隔多少秒運行一次。專

以下方法將每20秒執行一次

crontab -e
* * * * * /bin/date
* * * * * sleep 20; /bin/date
* * * * * sleep 40; /bin/date

說明:需要將/bin/date更換成你的命令即可

這種做法去處理隔幾十秒的定時任務還好,要是每1秒運行一次就得添加60條記錄。。。如果每秒屬運行還是用方案一吧。

也可以編寫shell腳本實現

crontab.sh

#!/bin/bash

step=2 #間隔的秒數,不能大於60

for (( i = 0; i < 60; i=(i+step) )); do

date

sleep $step

done

exit 0

crontab -e 輸入以下語句,然後:wq 保存退出。

* * * * * /home/crontab/crontab.sh

『陸』 linux中查看虛擬內存和cpu佔用率的命令是什麼

top,free,cat/proc/meminfo,cat/proc/cpuinfo。

[root@centerlisdbproc]#dmidecode|grep-A16"MemoryDevice"|more[objectObject]。

查看內存使用情況:cat/proc/meminfo,查看CPU使用情況:cat /proc/cpuinfo。

在系統維護的過程中,隨時可能有需要查看 CPU 使用率,並根據相應信息分析系統狀況的需要。在 CentOS 中,可以通過 top 命令來查看 CPU 使用狀況。

運行 top 命令後,CPU 使用狀態會以全屏的方式顯示,並且會神姿處在對話的模式 -- 用基於 top 的命令,可以控制顯示方式等等。退出 top 的命令為 q (在 top 運行中敲 q 鍵一次)。

top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器。

可以直接使用top命令後,查看%MEM的內容。可以選擇按進程查看或者按用戶查看,如想查看游純絕oracle用戶的進程內存使用情況的話可以使用如下的命令:$ top -u oracle。

(6)linux每5秒執行擴展閱讀:

一、查看內存佔用:

1、free

# free -m。

以MB為單位顯示內存使用情況。

# free -h。

以GB為單位顯示內存使用情況。

# free -t。

以總和的形式查詢內存的使用信息。

# free -s 5。

周期性的查詢內存使用信息。

每5秒執行一次命令。

二、查看CPU使用情況:

1、top。

top後鍵入P看一下誰佔用最大。

# top -d 5。

周期性的查詢CPU使用信息。

每5秒刷新一次。

2、ps auxw(查看本機的進程所佔cpu和mem的百分比情況)。

使用"ps auxw" 可以查看到本機的進程所佔cpu和mem的百分比情況。

# ps auxw | head -1

%CPU 進程的cpu佔用率。

%MEM 進程的內存佔用率。

3、查看本機所有進程的CPU佔比之和。

# cat cpu_per.sh

三、查褲皮看cpu信息(信息記錄在/proc/cpuinfo中)

# 總核數 = 物理CPU個數 X 每顆物理CPU的核數。

# 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超線程數。



『柒』 linux 在screen下定時執行腳本

首先查看一下/etc/crontab文件:

$ cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

前四行是有關設置cron任務運行的環境變數。SHELL變數的值指定系統使用的SHELL環境(該樣例為bash shell),PATH變數定義了執行命令的路徑。Cron的輸出以電子郵件的形式發給MAILTO變數定義的用戶名。如果MAILTO變數定義為空字元串(MAILTO=""),電子郵件不會被發送。執行命令或腳本時HOME變數可用來設置基目錄。
文件/etc/crontab中每行任務的描述格式如下:

minute hour day month dayofweek command

minute - 從0到59的整數
hour - 從0到23的整數
day - 從1到31的整數 (必須是指定月份的有效日期)
month - 從1到12的整數 (或如Jan或Feb簡寫的月份)
dayofweek - 從0到7的整數,0或7用來描述周日 (或用Sun或Mon簡寫來表示)
command - 需要執行的命令(可用as ls /proc >> /tmp/proc或 執行自定義腳本的命令)

root表示以root用戶身份來運行
run-parts表示後面跟著的是一個文件夾,要執行的是該文件夾下的所有腳本

對於以上各語句,星號(*)表示所有可用的值。例如*在指代month時表示每月執行(需要符合其他限制條件)該命令。
整數間的連字型大小(-)表示整數列,例如1-4意思是整數1,2,3,4
指定數值由逗號分開。如:3,4,6,8表示這四個指定整數。
符號「/」指定步進設置。「/<interger>」表示步進值。如0-59/2定義每兩分鍾執行一次。步進值也可用星號表示。如*/3用來運行每三個月份運行指定任務。

以「#」開頭的為注釋行,不會被執行。

如果一個cron任務需要定期而不是按小時,天,周,月來執行,則需要添加/etc/cron.d目錄。這個目錄下的所有文件和文件/etc/crontab語法相同,查看樣例:

# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom scrīpt the first day of every month at 4:10AM
10 4 1 * * /root/scrīpts/backup.sh

除了root用戶之外的用戶可以執行crontab配置計劃任務。所有用戶定義的crontab存儲在目錄/var/spool/cron下,任務會以創建者的身份被執行。要以特定用戶創建一個crontab,先以該用戶登錄,執行命令crontab -e,系統會啟動在VISUAL或者EDITOR中指定的的編輯軟體編輯crontab。文件內容與/etc/crontab格式相同。示例如下:

0 3 * * * /home/dbbackup/db1backup.sh backup
0 4 * * * /home/dbbackup/db2backup.sh backup

表示每天3點執行/home/dbbackup/db1backup.sh backup,4點執行/home/dbbackup/db2backup.sh backup,如果是每五分鍾執行一次可改為:

*/5 * * * * /home/dbbackup/db2backup.sh backup

當更改的crontab需要保存時,文件會保存在成如下文件/var/spool/cron/username。文件名會根據用戶名而不同。

cron服務會每分鍾檢查一次/etc/crontab、/etc/cron.d/、/var/spool/cron文件下的變更。如果發現變化,就會下載到存儲器中。因此,即使crontab文件改變了,程序也不需要重新啟動。推薦自定義的任務使用crontab -e命令添加,退出後用/etc/init.d/crond restart命令重啟crond進程,官方文件說不用重啟進程,但我遇到不重啟無法運行任務的情況。開始不知道/etc/crontab文件中的run-parts是什麼意思,直接把命令按照/etc/crontab的格式加上總是無法運行,後來才知道run-parts是指後面跟著的是文件夾。

『捌』 Kali-linux 定時執行任務Crontab的簡單設置

1.修改crontab文件添加或修改定時任務

直接編輯文件:nano /etc/crontab

或使用crontab命令:crontab -e

2.語法介紹:

裡面已經有一些test示例,照著添加或修改就行,這里做點簡單介紹:

time user command

分                 時             天           月               星期                    用戶              命令

minute         hour         day         month         dayofweek         user              command

A. 時間 time:

minute: 分鍾,從 0 到 59 之間的任何整數

hour: 小時,從 0 到 23 之間的任何整數

day: 日期,從 1 到 31 之間的任何整數(如果指定了月份,必須是該月份的有效日期)

month: 月份,從 1 到 12 之間的任何整數(或使用月份的英文簡寫如 jan、feb 等等)

dayofweek: 星期,從 0 到 7 之間的任何整數,這里的 0 或 7 代表星期日(或使用星期的英文簡寫如 sun、mon 等等)

command: 要執行的命令(command是linux終端可以直接執行的命令。)

這里一些符號可以表示以上特殊數值:

*表示所有有效值

-表示範圍, 比如1-4(從1到4)

,表示散數數值, 比如1,2,4,7...

/表示每隔,比如 */19 (每隔19 )

看一些簡單的例子,以下是我自己的一個crontab文件:

root@mtx:~#crontab -l

# /etc/crontab: system-wide crontab

# Unlike any other crontab you don't have to run the `crontab'

# command to install the new version when you edit this file

# and files in /etc/cron.d. These files also have username fields,

# that none of the other crontabs do.

SHELL=/bin/sh

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

# m h dom mon dow usercommand

#17 ** * *root    cd / && run-parts --report /etc/cron.hourly#每小時的17分

#25 6* * *roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )#每天6點25分

#47 6* * 7roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )#每年7月份里每一天的6點47分

#52 61 * *roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )#每個月1號的6點52分

*/4 *   * * *   root    /home/Tool/httpslow/httpslow.sh &#每4分鍾

#

B. 命令 command

命令command直接是linux終端可以執行的命令或可執行腳本的絕對位置

3.使用方法:

crontab crontab_file (-u user)#如crontab /etc/crontab -u root (root用戶執行默認配置文件)

crontab -l#查看當前正在運行的crontab服務

crontab -r#刪除用戶crontab配置文件

crontab -i#刪除前給出提示

crontab -h#查看幫助

/etc/init.d/cron start/stop/restart/reload#啟動/停止/重啟/重新載入 crontab服務

簡單的臨時重復命令完全可以有其他方案代替:

while true;do clear && echo '您的ip地址是:' && wget -qo- ifconfig.me/ip;sleep 120;done

#每2分鍾刷新一次外網ip地址,並列印出來」

watch -n 5 netstat -nus#顯示網路流量,每5秒刷新一次

。。。

『玖』 Linux Crontab 表達式詳解

cron的表達式被用來配置CronTrigger實例。 cron的表達式是字元串,實際上是由七子表達式,描述個別細節的時間表。這些子表達式是分開的空白,代表:

1. Seconds

2. Minutes

3. Hours

4. Day-of-Month

5. Month

6. Day-of-Week

7. Year ( 可選欄位 )

例  "0 0 12 ? * WED" 在每星期三下午12:00 執行,

個別子表達式可以包含范圍, 例如,在前面的例子里("WED")可以替換成 "MON-FRI", "MON, WED, FRI"甚至"MON-WED,SAT".

「*」 代表整個時間段.

每一個欄位都有一套可以指定有效值,如

Seconds (秒)         :可以用數字0-59 表示,

Minutes( 分)          :可以用數字0-59 表示,

Hours( 時)             :可以用數字0-23表示,

Day-of-Month( 天) :可以用數字1-31 中的任一一個值,但要注意一些特別的月份

Month( 月)            :可以用0-11 或用字元串  「JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC」 表示

Day-of-Week( 每周 ) : 可以用數字1-7表示(1 = 星期日)或用字元口串「SUN, MON, TUE, WED, THU, FRI and SAT」表示

「/」:為特別單位,表示為「每」如「0/15」表示每隔15分鍾執行一次,「0」表示為從「0」分開始, 「3/20」表示表示每隔20分鍾散派執行一次,「3」表示從第3分鍾開始執行

「?」:表示每月的某一天,或第周的某一天

「L」:用於每月,或每周,表示為每月的最後一天,或每個月的最後星期幾如「6L」表示「每月的最後一個星期五」

「W」:表示為最近工作日,如「15W」放在每月(day-of-month)欄位上表示為「到本月15日最近的工作日」

「「#」:是用來指定「的」每月第n個工作日,例 在每周(day-of-week)這個欄位中內容為"6#3" or "FRI#3" 則表示「每月第三個星期五」

1)Cron表達式的格式:秒 分 時 日 月 周 年(可選)。

欄位名                 允許的值                        允許的特殊字元

秒                         0-59                               , - * /

分                         0-59                               , - * /

小時                     0-23                               , - * /

日                         1-31                               , - * ? / L W C

月                         1-12 or JAN-DEC         , - * /

周幾                     1-7 or SUN-SAT           , - * ? / L C #

年 (可選欄位)     empty, 1970-2099      , - * /

「?」字元:表示不確定的值

「,」字元:指定數個值

「-」字元:指定一個值的范圍

「/」字元:指定一個值的增加幅度。n/m表示從n開始,每次增加m

「L」字元:用在日表示一個月中的最後一天,用在周表示該月最後一個星期X

「W」字元:指定離給定日期最近的工作日(周一到周五)

「#」字元:表示該月第幾個周X。6#3表示該月第3個周五

2)Cron表達式範例念掘敏:

每隔5秒執行一次:*/5 * * * * ?

每隔1分鍾執行一次:0 */1 * * * ?

每天23點執行一次:0 0 23 * * ?

每天凌晨1點執行一次:0 0 1 * * ?

每月1號凌晨1點執行一次:0 0 1 1 * ?

每月最後一天23點執行一次:0 0 23 L * ?

每周星期天仔枝凌晨1點實行一次:0 0 1 ? * L

在26分、29分、33分執行一次:0 26,29,33 * * * ?

每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?

『拾』 Linux 下x.log每5秒鍾會更新一行test的語句,一共5跳,怎樣通過shell中if。th

根據我對你提問的理解,給出以清敗下回答,希望對你有所幫助

你每5秒的test語句前面打一個時間戳,以當前答棚顫日期,

其後,每執行第二行時對比第一行的時間戳,看是不是和喊5秒

就OK

實現語句

#!/bin/bash
if[
$($(date+%s)-$(date+%s-d"$(tail-n1/a/b/c/x.log|awk'{print$1}')"))=="5"];then
echo"date+%T"OK>>/a/b/c/x.log
else
echo"date+%T"err>>/a/b/c/x.log
fi
閱讀全文

與linux每5秒執行相關的資料

熱點內容
湯姆貓是什麼網站 瀏覽:913
失易得數據恢復怎麼把照片 瀏覽:185
電腦只顯示1個網路 瀏覽:607
數控加工與編程專業怎麼樣 瀏覽:4
西安程序員工資 瀏覽:389
表格怎麼添加一行數據 瀏覽:35
旅遊網站開發怎麼選 瀏覽:669
properties文件位置 瀏覽:679
不想學編程可以做什麼 瀏覽:22
手機照片一鍵壓縮成文件 瀏覽:962
女生微信霸氣個性簽名 瀏覽:626
微博如何看別人一個月的數據 瀏覽:14
萬能小組件怎麼點擊就進入app應用 瀏覽:817
蘋果5s變形怎麼恢復 瀏覽:286
電腦里文件密碼忘了咋辦啊 瀏覽:315
輸入文件夾 瀏覽:31
extjsgrid刪除列 瀏覽:43
gdx文件怎麼打開 瀏覽:759
如何更新大數據量表 瀏覽:311
特殊量產工具 瀏覽:980

友情鏈接