當前位置:首頁 » 操作系統 » 計劃任務linux

計劃任務linux

發布時間: 2022-01-13 12:03:45

linux圖形界面的計劃任務在哪裡設置啊

老的發行版是用cron,現在都改成systemd/Timers了

網頁鏈接

② 舉例說明如何在Linux中實現計劃任務的功能。

linux定時任務使用crontab命令
實例
每1分鍾執行一次command
* * * * * command
每小時的第3和第15分鍾執行
3,15 * * * * command
在上午8點到11點的第3和第15分鍾執行
3,15 8-11 * * * command
每隔兩天的上午8點到11點的第3和第15分鍾執行
3,15 8-11 */2 * * command

crontab命令說明
crontab命令被用來提交和管理用戶的需要周期性執行的任
務,與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務工具,並且會自動啟動crond進程,crond進程每分鍾會定期檢查是
否有要執行的任務,如果有要執行的任務,則自動執行該任務。
語法
crontab(選項)(參數)
選項
-e:編輯該用戶的計時器設置;
-l:列出該用戶的計時器設置;
-r:刪除該用戶的計時器設置;
-u<用戶名稱>:指定要設定計時器的用戶名稱。
參數
crontab文件:指定包含待執行任務的crontab文件。
知識擴展
Linux下的任務調度分為兩類:系統任務調度和用戶任務調度。
系統任務調度:系統周期性所要執行的工作,比如寫緩存數據到硬碟、日誌清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件。
/etc/crontab文件包括下面幾行:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""HOME=/
# run-parts
51 * * * * root run-parts /etc/cron.hourly
24 7 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

四行是用來配置crond任務運行的環境變數,第一行SHELL變數指定了系統要使用哪個shell,這里是bash,第二行PATH變數指定了系統執行
命令的路徑,第三行MAILTO變數指定了crond的任務執行信息將通過電子郵件發送給root用戶,如果MAILTO變數的值為空,則表示不發送任務
執行信息給用戶,第四行的HOME變數指定了在執行命令或者腳本時使用的主目錄。
用戶任務調度:用戶定期要執行的工作,比如用戶數據備份、定時郵件提醒等。用戶可以使用 crontab 工具來定製自己的計劃任務。所有用戶定義的crontab文件都被保存在/var/spool/cron目錄中。其文件名與用戶名一致,使用者許可權文件如下:
/etc/cron.deny 該文件中所列用戶不允許使用crontab命令
/etc/cron.allow 該文件中所列用戶允許使用crontab命令
/var/spool/cron/ 所有用戶crontab文件存放的目錄,以用戶名命名
crontab文件的含義:用戶所建立的crontab文件中,每一行都代表一項任務,每行的每個欄位代表一項設置,它的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,格式如下:
minute hour day month week command 順序:分 時 日 月 周
其中:
minute: 表示分鍾,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這里的0或7代表星期日。
command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。
在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,「1,2,5,7,8,9」
中杠(-):可以用整數之間的中杠表示一個整數范圍,例如「2-6」表示「2,3,4,5,6」
正斜線(/):可以用正斜線指定時間的間隔頻率,例如「0-23/2」表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鍾執行一次。
crond服務
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
查看crontab服務狀態:
service crond status
手動啟動crontab服務:
service crond start
查看crontab服務是否已設置為開機啟動,執行命令:
ntsysv
加入開機自動啟動:
chkconfig –level 35 crond on

③ linux 查看計劃任務運行結果的指令是什麼

這個沒有具體命令,不過你可以在計劃任務的腳本中添加一些生成腳本執行結果的驗證日誌。
以便檢驗計劃任務和腳本的執行情況。

jobs是查看後台已啟動進程的作業情況。計劃任務跟後台進程是兩回事。= =!!!

④ linux 計劃任務

這里,我不給你解釋你給出文件中的具體命令的所要執行的任務,而是解釋一下Linux計劃任務cron配置文件內容的含義,在了解了含義後,你就可以一通百通了。預祝學習順利。
在Redhat等Linux操作系統中計劃任務cron的全局配置文件是/etc/crontab,每個用戶的cron配置文件位於/var/spool/cron目錄下,文件與用戶名同名。這些配置文件可以統稱為crontab表。
crontab表中計劃任務的書寫格式:
分鍾 小時 日 月 周 [用戶名] 命令
第一個欄位:分鍾,表示從一個小時的第幾分鍾來執行,范圍:0~59;
第二個欄位:小時,表示從一天的第幾個小時來執行,范圍:0~23;
第三個欄位:天,表示從一個月的第幾天來執行,范圍:1~31;
第四個欄位:月,表示從一年的第幾個月來執行,范圍:1~12;
第五個欄位:周,表示從一周的第幾天來執行,范圍0~6,其中0表示周日;
第六個欄位:用戶名,也就是要通過哪個用戶來執行程序,一般可以省略;
第七個欄位:執行的命令和參數。
前五個欄位都是時間欄位,它們的取值除了數字外還可以有幾個特殊的符號,就是「*」、「/」、「-」和「,」。其中,「*」代表所有的取值范圍內的數字;「/」代表每的意思,如「*/5」表示每5個單位;「-」代表從某個數字到某個數字;「,」分開幾個離散的數字。下面我們舉例描述之:
0 6 * * * echo "Good morning." >>/tmp/test
//每天早上6點整在/tmp/test文件中寫入"Good morning. "。
0 */2 * * * echo "Have a break now." >>/tmp/test
//每隔兩個小時在/tmp/test文件中寫入"Have a break now."。
0 23-7/2,8 * * * echo "Have a good dream." >> /tmp/test
//晚上11點到早上7點之間每隔兩個小時,和早上8點在/tmp/test文件中寫入" Have a good dream ."。
註:第六個欄位(用戶名)是可以省略的,它定義的是用哪個用戶來執行第七個欄位描述的指令。比如操作mysql伺服器,我們可以定義用mysql用戶來操作,這時要寫上用戶名。不過,對於cron來說意義不是太大,因為每個用戶都有自己的cron配置文件。有些程序的啟動必須用到root用戶,這時我們只要修改root用戶的cron配置文件就行了。在每個用戶的配置文件中,不必指定用戶名,而在全局配置文件中,一般要指定用戶名。
在全局性配置文件中,我們來解釋一下這些行:
01 * * * * root run-parts /etc/cron.hourly
//表示每個小時的第一分鍾,開始執行/etc/cron.hourly目錄下的可執行程序或腳本;
02 4 * * * root run-parts /etc/cron.daily
//表示每天的4點2分,開始執行/etc/cron.daily目錄下的可執行程序或腳本;
22 4 * * 0 root run-parts /etc/cron.weekly
//表示每周周日的4點22分,開始執行/etc/cron.weekly目錄下的可執行程序或腳本;
42 4 1 * * root run-parts /etc/cron.monthly
//表示每月第一天的4點42分,開始執行/etc/cron.monthly目錄下的可執行程序或腳本;
上面的每一行都是用來在同一時間批量執行任務的。這些行的命令欄位(即第七個欄位,第六欄位後的所有內容)最前面都含有命令run-parts,run-parts命令的意思是執行下面目錄裡面的程序和腳本,例如run-parts /etc/cron.hourly意思就是執行/etc/cron.hourly目錄下的程序或腳本。

⑤ linux下如何查看已有的計劃任務

使用crontab -l 即可查看自己的計劃任務,做為root用戶,如果想查看其他人的計劃任務則可以使用-u選項,例如:crontab -l -u linuxprobe 查看linuxprobe用戶的計劃任務。如果要編輯計劃任務的話可以使用-e選項,-e選項也可以配合-u選項來編輯他人的計劃任務,你可以去看看《Linux就該這么學》這本書的第四章,有詳細關於計劃任務的知識。

⑥ Linux系統下如何設置計劃任務

執行cron任務:具體如下
比如當前為root用戶#crontab
-e進入後文件格式如下分




執行命令比如
0
24
*
*
*
init
0*代表每
比如
每月
這行的意思是
每月的每天的24點
執行init
0
關機任務文件寫完後:wq保存#crontab
-l
查看任務列表

⑦ 如何在Linux中實現計劃任務

對於系統管理員而言,做系統備份是一個系統管理員非常重要的工作,但是每天重復的工作是一件非常繁瑣的工作,那有沒有一種方法可以讓系統每天每到固定的時間都自己做備份工作呢?答案是有的,那就是計劃任務,現在我們就來說說計劃任務是怎麼一回事,以及怎麼去實現它
一般來說計劃任務分兩種一次性計劃任務和周期性計劃任務
1, 一次性計劃任務:顧名思義一次性計劃任務就是在某一個時間點只執行一次的任務,例如像,下周一有約會需要提醒這樣只執行一次的任務,
命令at ,batsh實現一次性計劃任務
At的用法:at time
例如 at 10:29 就是指在10:29 分執行的任務

執行的結果如下

At 命令的時間格式非常靈活我們可以使用
At now+1min
At 11:54
At date 等在這里不再贅述
Batsh 命令是指在系統空閑時執行的一次性計劃任務,比如你有一件不太重要的任務需要執行,當重要的任務執行完才會執行
Batsh 的用法
Batsh 回車 然後輸入你要執行的任務

2, 周期性計劃任務 :周期性計劃任務指的是每隔一段時間就執行一次的任務,比如鬧鍾每天早上六點叫你起床 命令 cron
(1) 載入cron 模塊crond:crond是一種服務一般情況下crond是默認載入的但是也不排除有特出情況
Modprobe crond

(2) crond服務操作 survice crond {start|status|stop|restart}
start 啟動crond
status查看crond的運行狀態
stop 停止crond服務
restart 重啟crond服務
(3) crond的分類 :系統crond和用戶crond
系統crond 是系統運行所需要的crond服務 /etc/crontab
用戶crond使用戶定義的crond服務/var/spool/cron/USERNAME
(4) cron 的書寫格式 min hour day month week command
共六段 第一段min 指分鍾,第二段hour指小時,第三段day指天,第四段mouth指月份,第五段week指周,第六段command指你要執行的命令例如
10 1 * * 7 ls –l /etc 指的是 每周末的一點10分執行ls –l /etc命令
在欄位中的*指在指定的時間域上所有的時間
—對應時間域上的連續取值時間 如1-10 1到10
,表示對應時間域上離散的時間取值如 1,10指的是1和10
/表示在對應時間域上每隔多久進行一次取值
如 1-10 1 * * 7 ls –l /etc指的是每周末的一點1-10分每分鍾執行ls –l /etc命令
1,10 1 * * 7 ls –l /etc指的是每周末的一點1分和10分時分別執行ls –l /etc命令
*/10 1 * * 7 ls –l /etc每周末的一點每隔10分鍾執行ls –l /etc命令

(5) 說了這么多那到底怎麼才能定義自己的計劃任務呢?
Crond –e 打開編輯文本然後輸入要定義計劃任務
如1,10 1 * * 7 ls –l /etc

保存並退出 一個計劃任務就做好了
我們來看看怎麼定義在每天晚上的凌晨把系統備份

管理員還可以為其他用戶定製計劃任務 使用 crontab –u username
Crontab –l 可以查看已經定義的計劃任務
Crontab –r 移除已將定義的計劃任務

(6) Crond 只能在Linux系統啟用的時候進行工作,當計劃任務所在的時間Linux系統處於不工作狀態那我們能不能在Linux啟動後的一段時間內將沒有做的計劃任務給補上呢?檔案是肯定的我們使用anacrond命令來是以這一功能
Anacron的命令格式 day min 說明信息 run-parts /etc/cron.daiy
Day 指過去多長時間沒有執行過命令 min 指啟動後多長時間執行
如 1 65 run-parts /etc/cron.daily 指一天沒有運行過時 啟動後65分鍾後執行任務計劃

⑧ Linux的shell文件如何來執行命令添加計劃任務

#同步express的備份
10 0 * * * /opt/dts_rsync.sh &
#導入備份文件
01 7 * * * /opt/dts_input.sh &
那麼需要的做的就是提取下載完成時間,然後將導入備份文件時間中的小時部分增加1小時。
由於shell無法直接編輯任務計劃。
可以將任務計劃內容寫入到一個txt文件,然後使用命令將txt的內容覆蓋至任務計劃
命令如下:
/usr/bin/crontab /opt/cron.txt
完整的shell腳本cron如下:
#!/bin/bash
echo "#######################" >> /opt/cron.log
#記錄執行時間
statime=`date +%Y-%m-%d" "%H:%M:%S`
echo "$statime" >> /opt/cron.log
#任務計劃開始時間,提取小時
a=`cat /opt/cron.txt | grep dts_input.sh | awk '{print $2}'`
#傳輸完成時間,提取小時
b=`tail -1 /tmp/dts_message.log | awk '{print $2}' | cut -d ":" -f 1`
echo "任務計劃開始時間$a" >> /opt/cron.log
echo "傳輸完成時間$b" >> /opt/cron.log
#判斷傳輸完成時間是否大於等於任務計劃時間
if [ $b -ge $a ];then
#增加1個小時
c=`/usr/bin/expr $a + 1`
#修改任務計劃文件
/bin/sed -i "s/$a/$c/g" /opt/cron.txt
#覆蓋任務計劃
/usr/bin/crontab /opt/cron.txt
echo "任務計劃開始時間狀態ERROR,變更小時為$c" >> /opt/cron.log
else
echo "任務計劃開始時間狀態OK,小時是$a" >> /opt/cron.log
fi
cron.txt內容如下:
#同步express的備份
10 0 * * * /opt/dts_rsync.sh &
#導入備份文件
01 7 * * * /opt/dts_input.sh &
#檢查下載時間
01 */1 * * * /opt/cron.sh
#每周日清空日誌記錄
01 23 * * 0 /opt/clean_log.sh

⑨ 如何設置linux 的計劃任務

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這個服務已經在進程裡面了,我們就可以用這個服務了,Cron服務提供以下幾種介面供大家使用:
1.直接用crontab命令編輯
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命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。
1、linux任務調度的工作主要分為以下兩類:
*系統執行的工作:系統周期性所要執行的工作,如備份系統數據、清理緩存
*個人執行的工作:某個用戶定期要做的工作,例如每隔10分鍾檢查郵件伺服器是否有新信,這些工作可由每個用戶自行設置。
2.crontab命令選項:
-u指定一個用戶,
-l列出某個用戶的任務計劃,
-r刪除某個用戶的任務,
-e編輯某個用戶的任務
3.cron文件語法:
分 小時 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范圍,0表示周日一般一行對應一個任務)
4.記住幾個特殊符號的含義:
"*"代表取值范圍內的數字,
"/"代表"每",
"-"代表從某個數字到某個數字,
","分開幾個離散的數字
一、任務調度設置文件的寫法
可用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參數表示,執行後面目錄中的所有可執行文件。 ]
二、新增調度任務
新增調度任務可用兩種方法:
1、在命令行輸入: crontab -e 然後添加相應的任務,wq存檔退出。
2、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務。
三、查看調度任務

crontab -l //列出當前的所有調度任務
crontab -l -u jp //列出用戶jp的所有調度任務
四、刪除任務調度工作
crontab -r //刪除所有任務調度工作
五、任務調度執行結果的轉向
例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

⑩ linux下如何查看已有的計劃任務

用crontab -l 就會列出當前機器的計劃任務!

熱點內容
圖片壓縮求 發布:2024-12-22 15:05:28 瀏覽:780
我的世界tis伺服器怎麼加 發布:2024-12-22 14:48:09 瀏覽:579
方舟伺服器虛擬內存是什麼意思 發布:2024-12-22 14:21:52 瀏覽:956
磁力片編程課 發布:2024-12-22 14:10:57 瀏覽:272
小米6實際存儲空間 發布:2024-12-22 13:41:25 瀏覽:595
sql注入補丁 發布:2024-12-22 13:32:58 瀏覽:120
小區高層消防逃生怎麼配置 發布:2024-12-22 13:29:20 瀏覽:717
伺服器配置光纖網卡ip 發布:2024-12-22 13:22:47 瀏覽:516
地圖下載源碼 發布:2024-12-22 13:18:40 瀏覽:394
navicat存儲過程導出 發布:2024-12-22 13:12:44 瀏覽:300