標籤:

linux Shell學習筆記第五天

第五天:函數與任務調度

函數的優勢

分而治之f

協同合作

方便管理

維護簡單

函數的結構

function 函數名()

{

命令1

命令2

命令3

}

函數的參數傳遞

向函數傳遞參數就像在一般腳本中使用特殊變數$1,$2,$3…$9一樣,函數取得所傳參數後將原始參數傳回shell腳本,因此最好先在函數內重新設置變數保存所傳的參數。這樣如果函數有一點錯誤,就可以通過已經本地化的變數名迅速加以跟蹤。

函數文件

當你手機一些經常使用的函數時,可以將之放入函數文件中並將文件載入shell。

文件頭應包含語句#!/bin/bash,文件名可任意選取,但最好與相關任務有某種實際聯繫。

#!/bin/bash

#注釋

function1()

{

}

函數文件示例

functions.main

#!/bin/bash

#functions.main

findit()

{

if [$# -lt 1 ];then

echo 「usage:findit file」

return 1

fi

find / -name $1 –peint

}

函數使用示例

. functions.main 載入函數

set 查看是否載入函數

findit 調用函數

findit functions.main 調用函數

unset findit 刪除findit函數

單次任務調度

at用於在指定時間調度一次性的任務.

格式:

at [選項] time

-f 從文件中讀取命令或腳本

-m在作業完成後,給用戶發電子郵件

-v 顯示作業唄執行的時間

服務啟動與停止

service atd start

service atd stop

刪除任務 atrm

單次任務調度示例

at –f mycrontest.sh 10:00pm tomorrow

at –f mycrontest.sh 2:00am Tuesday

at –f mycrontest.sh 2:00pm Feb 11

at –f mycrontest.sh 2:00pm next week

循環調度crontab

crontab可以定期運行一些作業任務。它是一個腳本,每次linux啟動時都會自動啟動該腳本。

格式:

crontab [-e [UserName]|-l [UserName]|-r [UserName]]

-e執行文字編輯器來設定時程表

-l 列出文字編輯器來設定時程表

-r刪除目前的時程表

-v列出用戶cron作業的狀態

crontab配置

crontab可以定期運行一些作業任務。它是一個腳本,每次linux啟動時都會自動啟動該腳本。

全局配置文件 /etc/crontab

用戶配置文件 /var/spool/cron/

crontab的用戶配置

/etc/cron.allow

/etc/cron.deny

/etc/crontab

SHELL=/bin/bash

PATH=/sbin;/bin:/usr/sbin;/usr/bin

MAILTO=root

HOME=/

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 41** root run-parts /etc/cron.monthly

五個欄位,分 時 日 月 星期

crontab應用場景

每五分鐘測試與網關192.168.1.254是否連通 ping */5 * * * *

用戶alex每個周日中午12點備份samba的配置文件

0 12 * * 0 tar –czvf samba.tar.gz /etc/samba/smb.conf

總結回顧

函數的優勢

協同合作

檢查方便

高級靈活

任務調度的方式

at

crontab


推薦閱讀:

讀紅筆記之22:弘時是雍正皇長子,為何卻終生無爵位?
容齋筆記 中華傳統工藝吉祥圖案寓意
聽道筆記 與主同死同復活的再思 於宏潔牧師
設計師的讀書筆記!帶你重新全面認識色彩系列之紅色篇

TAG:學習 | 筆記 |