成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

OCF便利的函數(shù)有哪些

這篇文章主要講解了“OCF便利的函數(shù)有哪些”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“OCF便利的函數(shù)有哪些”吧!

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、容縣網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、購物商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為容縣等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

7便利的函數(shù)

7.1日志: ocf_log

資源代理應(yīng)該使用ocf_log函數(shù)來進行日志。調(diào)用方法如下:

支持如下幾種日志級別:

  • debug ---- debugging 消息。多數(shù)的日志配置缺省不使用這個級別。

  • info ---- 是關(guān)于資源代理行為和狀態(tài)的信息

  • warn ---- 警告。一些不期望的行為,但是不是不可恢復的錯誤

  • err ---- 錯誤。這些日志在出現(xiàn)資源代理以一定錯誤碼exit之前

  • crit ---- 臨界錯誤。以為有err級別。crit級別就非常少用,出發(fā)資源代理也以一定的錯誤碼退出

7.2檢查二進制:have_binary和 check_binary

資源代理可能需要測試特定可執(zhí)行文件的可用性??梢允褂胔ave_binary函數(shù):

1

2

3

if ! have_binary  frobnicate; then

  ocf_log  warn "Missing frobnicate binary, frobnication disabled!"

fi

如果二進制文件缺失是一個致命的錯誤,就應(yīng)該提前調(diào)用check_binary函數(shù):

1

check_binary frobnicate

使用check_binary是檢查文件存在(并且可執(zhí)行)的一個很便捷的方法,如果沒找到或不可執(zhí)行的話,以$OCF_ERR_INSTALLED退出。

注意:have_binary和check_binary會在$PATH 定義的目錄下去找指定的二進制文件。建議最好是做全路徑檢查,分布式環(huán)境里面,用戶策略的變化都會使得文件路徑發(fā)生變化。

7.3執(zhí)行命令并收集輸出:ocf_run

任何時候需要執(zhí)行一個命令并獲得其輸出都可以使用ocf_run函數(shù),像下面的例子這樣:

1

ocf_run "frobnicate  --spam=eggs" || exit $OCF_ERR_GENERIC

通過上面的命令,資源代理會調(diào)用frobnicate --spam=eggs 并捕捉其輸出和退出碼。如果退出碼非零(代表一種錯誤),ocf_run 以 err級別將輸出記錄到日志,資源代理隨后退出。如果退出碼是0(表示成功),則輸出將以info級別記錄到日志。

如果資源代理希望忽略成功執(zhí)行的輸出,可以使用 -q 參數(shù)。在下面的例子中,ocf_run 只會將退出碼非零的執(zhí)行輸出結(jié)果導入日志。

1

ocf_run -q "frobnicate  --spam=eggs" || exit $OCF_ERR_GENERIC

最后,如果資源代理想以不同的日志級別(非 err )記錄那些返回碼非零的執(zhí)行結(jié)果,可以通過使用 -info 或者 -warn參數(shù):

1

ocf_run -warn "frobnicate  --spam=eggs"

7.4鎖:ocf_take_lock和 ocf_release_lock_on_exit

偶然也會出現(xiàn)這種情況,按集群配置,相同類型的不同資源不能同時并行運行。資源代理需要保證在相同機器上不會并行:

1

2

3

4

5

6

7

8

LOCKFILE=${HA_RSCTMP}/foobar

ocf_release_lock_on_exit $LOCKFILE

foobar_start() {

   ...

   ocf_take_lock  $LOCKFILE

   ...

}

ocf_take_lock 試圖獲得指定的$LOCKFILE。不可得時,它sleep 0到1秒間一個隨機的時間,再重試。ocf_release_lock_on_exit 會在資源代理退出的時候釋放鎖文件。

7.5數(shù)值檢測

對于參數(shù)檢測,這個函數(shù)可以用來檢測一個值是否是一個數(shù)。例子如下:

1

2

3

4

5

6

7

8

9

10

LOCKFILE=${HA_RSCTMP}/foobar

ocf_release_lock_on_exit $LOCKFILE

foobar_validate_all() {

   if !  ocf_is_decimal $OCF_RESKEY_eggs; then

       ocf_log  err "eggs is not numeric!"

       exit $OCF_ERR_CONFIGURED

   fi

   ...

}

7.6 boolean值檢測

當資源代理定義一個boolean類型的參數(shù),用戶會將這個參數(shù)指定為0/1, true/false, 或者 on/off。在資源代理里面,去檢測這些值是很麻煩的,所以應(yīng)該用ocf_is_true函數(shù)比較方便:

1

2

3

if ocf_is_true  $OCF_RESKEY_superfrobnicate; then

   ocf_run "frobnicate  --super"

fi

注意:ocf_is_true 不可以對空的或者不存在的變量使用。它總是返回退出碼 1,相當于 false。

7.7偽資源:ha_pseudo_resource

偽資源是那種不像實際可運行進程一樣可以真實啟動和停止的資源代理,它們僅僅執(zhí)行單個的行為,并以某種方式跟蹤這個行為執(zhí)行了還是沒有。portblock資源代理是這樣的一個例子。

偽資源的資源代理可以使用ha_pseudo_resource,  它石永紅tracking file(跟蹤文件)開保存資源狀態(tài)的標簽。如果foobar是為資源的資源代理,其start的行為應(yīng)該像下面這個樣子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

foobar_start() {

   # exit  immediately if configuration is not valid

   foobar_validate_all  || exit $?

   # if resource is  already running, bail out early

   if foobar_monitor; then

       ocf_log  info "Resource is already running"

       return $OCF_SUCCESS

   fi

   # start the  pseudo resource

   ha_pseudo_resource  ${OCF_RESOURCE_INSTANCE} start

   # After the  resource has been started, check whether it started up

   # correctly. If  the resource starts asynchronously, the agent may

   # spin on the  monitor function here -- if the resource does not

   # start up within  the defined timeout, the cluster manager will

   # consider the  start action failed

   while !  foobar_monitor; do

       ocf_log  debug "Resource has not started yet, waiting"

       sleep 1

   done

   # only return  $OCF_SUCCESS if _everything_ succeeded as expected

   return $OCF_SUCCESS

}

感謝各位的閱讀,以上就是“OCF便利的函數(shù)有哪些”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對OCF便利的函數(shù)有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

分享文章:OCF便利的函數(shù)有哪些
文章轉(zhuǎn)載:http://jinyejixie.com/article20/pspeco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)全網(wǎng)營銷推廣、網(wǎng)站設(shè)計公司、用戶體驗、云服務(wù)器、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
克山县| 彭泽县| 从江县| 巩义市| 石屏县| 咸阳市| 阳东县| 渑池县| 明水县| 晋中市| 林芝县| 钦州市| 政和县| 盘锦市| 房山区| 仁怀市| 武强县| 宜兰县| 巴彦县| 天峨县| 刚察县| 兴安盟| 平和县| 荆州市| 思南县| 聂拉木县| 民和| 蒙城县| 漳浦县| 凤阳县| 开原市| 景谷| 秀山| 临沂市| 德州市| 盐山县| 太仆寺旗| 怀柔区| 长顺县| 寻乌县| 乌审旗|