溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)如何使用shell腳本定時任務(wù)

發(fā)布時間:2022-01-26 09:45:44 來源:億速云 閱讀:955 作者:kk 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Linux系統(tǒng)如何使用shell腳本定時任務(wù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

定時任務(wù)是Linux系統(tǒng)運維人員常用的一種技術(shù)手段,使用定時任務(wù)可以簡化那些繁瑣、重復(fù)的工作。

我的虛擬機(jī)是centos7.0.2

接下來 寫一個簡單的shell命令:

1.先進(jìn)入根目錄

cd /root

2.使用vi編輯器 可以直接 # vim hello.sh編寫第一個shell文件 hello.sh, 注意一定要以.sh結(jié)尾

vim hello.sh

3.編寫第一個shell文件,#!/bin/bash 是必須要寫的,表示要是/bin/bash這個執(zhí)行腳本的命令執(zhí)行接下來寫的腳本, echo “hello world !!”表示想前端打印一句話,具體看各自需求。

Linux系統(tǒng)如何使用shell腳本定時任務(wù)

4.通過chmod命令賦予該腳本的執(zhí)行權(quán)限chmod 755 hello.sh,否則沒有執(zhí)行權(quán)限,/root/hello.sh表示在全路徑下執(zhí)行該shell腳本

Linux系統(tǒng)如何使用shell腳本定時任務(wù)

就此一個簡單的shell腳本就這樣寫完了 具體的這里就不講了。(說白了,shell腳本就相當(dāng)于一個文件,它專門來干自己獨立的任務(wù))

雖然一個簡單的shell腳本寫完了 但是運行后只能執(zhí)行一次 對很多應(yīng)用場景來說還是不夠,接下來說一下定時任務(wù)

linux應(yīng)該都有crontab,沒有的話可以安裝一下:

yum install vixie-cron

yum install crontabs

vixie-cron軟件包是cron的主程序; crontabs軟件包是用來安裝、卸裝、或列舉用來驅(qū)動 cron 守護(hù)進(jìn)程的表格的程序。

安裝完以后開啟crontab服務(wù)

service crond start

用以下的方法啟動、關(guān)閉這個cron服務(wù): service crond start //啟動服務(wù) service crond stop //關(guān)閉服務(wù) service crond restart //重啟服務(wù) service crond reload //重新載入配置

查看crontab服務(wù)狀態(tài):service crond status 手動啟動crontab服務(wù):service crond start

查看crontab服務(wù)是否已設(shè)置為開機(jī)啟動,執(zhí)行命令:ntsysv 加入開機(jī)自動啟動: chkconfig –level 35 crond on

也可以用設(shè)置開機(jī)自動啟動crond服務(wù): [root@CentOS ~]# chkconfig crond on

Linux系統(tǒng)如何使用shell腳本定時任務(wù)

查看各個開機(jī)級別的crond服務(wù)運行情況 [root@CentOS ~]# chkconfig –list crond crond 0:關(guān)閉 1:關(guān)閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關(guān)閉 可以看到2、3、4、5級別開機(jī)會自動啟動crond服務(wù) 取消開機(jī)自動啟動crond服務(wù): [root@CentOS ~]# chkconfig crond off

設(shè)置需要執(zhí)行的腳本

新增調(diào)度任務(wù)可用兩種方法: 1)、在命令行輸入: crontab -e 然后添加相應(yīng)的任務(wù),wq存盤退出。 2)、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應(yīng)的任務(wù)。 crontab -e配置是針對某個用戶的,而編輯/etc/crontab是針對系統(tǒng)的任務(wù) 查看調(diào)度任務(wù) crontab -l //列出當(dāng)前的所有調(diào)度任務(wù) crontab -l -u jp //列出用戶jp的所有調(diào)度任務(wù) 刪除任務(wù)調(diào)度工作 crontab -r //刪除所有任務(wù)調(diào)度工作 直接編輯 vim /etc/crontab ,默認(rèn)的文件形式如下:

Linux系統(tǒng)如何使用shell腳本定時任務(wù)

前四行是有關(guān)設(shè)置cron任務(wù)運行的環(huán)境變量。

SHELL變量的值指定系統(tǒng)使用的SHELL環(huán)境(該樣例為bash shell),

PATH變量定義了執(zhí)行命令的路徑。Cron的輸出以電子郵件的形式發(fā)給MAILTO變量定義的用戶名。

如果MAILTO變量定義為空字符串(MAILTO=””),電子郵件不會被發(fā)送。執(zhí)行命令或腳本時HOME變量可用來設(shè)置基目錄。

文件/etc/crontab中每行任務(wù)的描述格式如下:

minute hour day month dayofweek command

minute – 從0到59的整數(shù)

hour – 從0到23的整數(shù)

day – 從1到31的整數(shù) (必須是指定月份的有效日期)

month – 從1到12的整數(shù) (或如Jan或Feb簡寫的月份)

dayofweek – 從0到7的整數(shù),0或7用來描述周日 (或用Sun或Mon簡寫來表示)

command – 需要執(zhí)行的命令(可用as ls /proc >> /tmp/proc或 執(zhí)行自定義腳本的命令)

root表示以root用戶身份來運行

run-parts表示后面跟著的是一個文件夾,要執(zhí)行的是該文件夾下的所有腳本

對于以上各語句,星號()表示所有可用的值。例如在指代month時表示每月執(zhí)行(需要符合其他限制條件)該命令。

整數(shù)間的連字號(-)表示整數(shù)列,例如1-4意思是整數(shù)1,2,3,4

指定數(shù)值由逗號分開。如:3,4,6,8表示這四個指定整數(shù)。

符號“/”指定步進(jìn)設(shè)置?!?”表示步進(jìn)值。如0-59/2定義每兩分鐘執(zhí)行一次。步進(jìn)值也可用星號表示。如*/3用來運行每三個月份運行指定任務(wù)。

以“#”開頭的為注釋行,不會被執(zhí)行。

比如上述圖中 執(zhí)行的是每隔一分鐘執(zhí)行一半hello.sh腳本 上邊腳本輸出的內(nèi)容 大家也知道  >> 符號 指定文件獲取內(nèi)容的存放位置 比如訪問一個地址 命令 curl http://www.baidu.com

linux系統(tǒng)字符界面 無法顯示畫面只能把訪問的頁面編譯后的代碼原樣輸出 如:

Linux系統(tǒng)如何使用shell腳本定時任務(wù)

這樣大家看著很亂吧

當(dāng)然也有-I 參數(shù) 靜默訪問  curl -I http://www.baidu.com

Linux系統(tǒng)如何使用shell腳本定時任務(wù)

這樣只顯示一組http狀態(tài) 但還是很亂 直接把他寫進(jìn)固定的日志文件就方便多了

cat 一下 查看  這樣就簡單多了

Linux系統(tǒng)如何使用shell腳本定時任務(wù)

什么是Linux系統(tǒng)

Linux是一種免費使用和自由傳播的類UNIX操作系統(tǒng),是一個基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),使用Linux能運行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。

上述就是小編為大家分享的Linux系統(tǒng)如何使用shell腳本定時任務(wù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI