婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > shell腳本實現文件鎖功能

shell腳本實現文件鎖功能

熱門標簽:百度地圖的地圖標注 地圖標注超出范圍怎么辦 東莞電銷機器人價格一覽表 excel地址地圖標注 陜西電銷卡外呼系統怎么安裝 杭州機器人外呼系統 佛山高德地圖標注中心 百度地圖標注圖標更換 旅游地圖標注大全

1.背景

當多個進程可能會對同樣的數據執行操作時,這些進程需要保證其它進程沒有在操作,以免損壞數據。通常,這樣的進程會使用一個“鎖文件”,也就是建立一個文件來告訴別的進程自己在運行,如果檢測到那個文件存在則認為有操作同樣數據的進程在工作。這樣的問題是,進程不小心意外死亡了,沒有清理掉那個鎖文件,那么只能由用戶手動來清理了。

2.關于flock

flock 是對于整個文件的建議性鎖。也就是說,如果一個進程在一個文件(inode)上放了鎖,那么其它進程是可以知道的。(建議性鎖不強求進程遵守。)最棒的一點是,它的第一個參數是文件描述符,在此文件描述符關閉時,鎖會自動釋放。而當進程終止時,所有的文件描述符均會被關閉。

3. shell中實現flock系統調用的命令是flock,其使用格式有以下兩種(man flock)


復制代碼 代碼如下:

flock [-sxon] [-w timeout] lockfile [-c] command...
flock [-sxun] [-w timeout] fd


選項和參數:


-s,--shared:獲取一個共享鎖,在定向為某文件的FD上設置共享鎖而未釋放鎖的時間內,其他進程試圖在定向為此文件的FD上設置獨占鎖的請求失敗,而其他進程試圖在定向為此文件的FD上設置共享鎖的請求會成功。
-x,-e,--exclusive:獲取一個排它鎖,或者稱為寫入鎖,為默認項
-u,--unlock:手動釋放鎖,一般情況不必須,當FD關閉時,系統會自動解鎖,此參數用于腳本命令一部分需要異步執行,一部分可以同步執行的情況。
-n,--nb, --nonblock:非阻塞模式,當獲取鎖失敗時,返回1而不是等待
-w, --wait, --timeout seconds:設置阻塞超時,當超過設置的秒數時,退出阻塞模式,返回1,并繼續執行后面的語句
-o, --close:表示當執行command前關閉設置鎖的FD,以使command的子進程不保持鎖。
-c, --command command:在shell中執行其后的語句

4. shell中實現排它鎖避免腳本重復執行

Linux中的例行性工作排程crontab會定時執行一些腳本,但腳本的執行時間往往無法控制,當腳本執行時間過長時,可能會導致上一次任務的腳本還沒執行完,下一次任務的腳本又開始執行了。這種情況下可能會出現一些并發問題,嚴重時會導致出現臟數據/性能瓶頸的惡性循環。
通過使用flock建立排它鎖可以規避這個問題,如果一個進程對某個加了排他鎖,則其它進程無法加鎖,可以選擇等待超時或馬上返回。測試實例如下:

4.1 創建執行腳本

復制代碼 代碼如下:

#cat /scripts/shell/file_lock.sh
#!/bin/bash
# Description: test for file flock
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

echo ""
echo "----------------------------------"

echo "start at `date '+%Y-%m-%d %H:%M:%S'` ..."

sleep 140s

echo "finished at `date '+%Y-%m-%d %H:%M:%S'` ..."


4.2 創建定時任務:測試排它鎖


復制代碼 代碼如下:

#crontab -e
* * * * * flock -xn /dev/shm/test.lock -c "sh /scripts/shell/file_lock.sh > /root/stdout.log"

每分鐘執行一次該腳本,并將輸出信息寫入到stdout.log
 
查看輸出日志如下:
復制代碼 代碼如下:

----------------------------------
start at 2014-04-10 10:23:01 ...            #獲取鎖
finish at 2014-04-10 10:25:21 ...           #釋放鎖
 
 
----------------------------------
start at 2014-04-10 10:26:01 ...            #10:27:00及10:28:00啟動的定時任務由于無法獲取鎖,以失敗而退出執行,直到10:26:00才獲取到鎖
finish at 2014-04-10 10:28:21 ...


4.3 測試排它鎖,加上等待超時


復制代碼 代碼如下:

* * * * * flock -x -w 20 /dev/shm/test.lock -c "sh /scripts/shell/file_lock.sh > /root/stdout.log"

查看日志輸出信息:
復制代碼 代碼如下:

----------------------------------
start at 2014-04-10 10:29:01 ...
finish at 2014-04-10 10:31:21 ...
 
----------------------------------
start at 2014-04-10 10:31:21 ...    #10:31:00啟動的定時任務等待了20秒后,上一個任務釋放了鎖,所以此任務可以馬上拿到鎖,并繼續執行
finish at 2014-04-10 10:33:41 ...

您可能感興趣的文章:
  • linux shell之文件鎖

標簽:通遼 南充 雅安 朝陽 延邊 西藏 隨州 青島

巨人網絡通訊聲明:本文標題《shell腳本實現文件鎖功能》,本文關鍵詞  shell,腳本,實現,文件,鎖,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《shell腳本實現文件鎖功能》相關的同類信息!
  • 本頁收集關于shell腳本實現文件鎖功能的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产亚洲美州欧州综合国| 久久99深爱久久99精品| 亚洲永久免费视频| 国产真实乱偷精品视频免| 色94色欧美sute亚洲线路一久| 91超碰这里只有精品国产| 国产精品久久久久久久久免费樱桃| 亚洲福中文字幕伊人影院| 国产精品99久久久久| 欧美日韩免费高清一区色橹橹| 国产欧美日韩久久| 国产精品一区二区你懂的| 欧美一区二区人人喊爽| 亚洲电影你懂得| 欧美主播一区二区三区| 136国产福利精品导航| 成人午夜精品一区二区三区| 久久久久国产免费免费| 青青国产91久久久久久| 精品少妇一区二区| 国产在线精品一区二区三区不卡| 欧美一区二区三区影视| 免费高清视频精品| 久久久精品国产免大香伊| 国产精品1区2区3区在线观看| 日韩欧美国产午夜精品| 精品一区二区免费在线观看| 日韩精品在线一区二区| 国产精品一品二品| 亚洲欧美国产77777| 911精品国产一区二区在线| 天天综合色天天| 精品国产乱码久久久久久图片| 国产又粗又猛又爽又黄91精品| 欧美一区二区三区色| 国产精品69久久久久水密桃| 日韩码欧中文字| 日韩欧美在线不卡| 成人av资源在线观看| 日韩主播视频在线| 久久久91精品国产一区二区精品 | 91精品国产91热久久久做人人 | 激情伊人五月天久久综合| 中文字幕乱码一区二区免费| 欧美日韩国产首页| 国产白丝精品91爽爽久久| 偷拍一区二区三区四区| 国产精品久久久久久久午夜片| 欧美成人一区二区三区片免费| jlzzjlzz亚洲女人18| 老司机免费视频一区二区| 亚洲综合激情另类小说区| 亚洲国产精品成人综合色在线婷婷 | 性久久久久久久久久久久| 国产精品污网站| 精品国产乱码久久久久久久| 欧美色爱综合网| 日本乱人伦aⅴ精品| 成人h动漫精品一区二区| 粉嫩在线一区二区三区视频| 精品亚洲国产成人av制服丝袜| 日本伊人午夜精品| 亚洲成人免费观看| 亚洲电影一区二区三区| 一区二区三区四区在线播放| 亚洲色图欧美偷拍| 亚洲毛片av在线| 伊人婷婷欧美激情| 一区二区三区精密机械公司| 亚洲欧美日韩综合aⅴ视频| 亚洲日本免费电影| 国产aⅴ精品一区二区三区色成熟| 欧美中文字幕一区二区三区 | 欧美精品一级二级| 91精品国产免费| 国产亚洲精品资源在线26u| 国产精品入口麻豆九色| 一区二区三区在线观看国产| 亚洲电影一级片| 国产尤物一区二区| 99re成人在线| 91麻豆精品91久久久久久清纯| 精品日韩99亚洲| 中文字幕一区二区三区四区不卡 | 精品国产乱码久久久久久久久| 欧美激情一区不卡| 亚洲自拍偷拍麻豆| 美女脱光内衣内裤视频久久影院| 美女在线视频一区| 91玉足脚交白嫩脚丫在线播放| 在线免费观看成人短视频| 欧美日韩高清在线播放| 国产精品嫩草影院com| 无码av免费一区二区三区试看| 国产精品香蕉一区二区三区| 7777精品伊人久久久大香线蕉| 国产精品麻豆欧美日韩ww| 日本欧美加勒比视频| 日韩你懂的在线观看| 日韩理论在线观看| 国产婷婷一区二区| 亚洲国产日日夜夜| 欧美日韩一级大片网址| 亚洲在线成人精品| 欧美少妇xxx| 亚洲啪啪综合av一区二区三区| 免费成人美女在线观看.| 91官网在线观看| 国产精品网友自拍| 国产精品一二三四区| 91精品国产色综合久久久蜜香臀| 亚洲视频每日更新| a级高清视频欧美日韩| 国产视频911| 国产98色在线|日韩| 2020日本不卡一区二区视频| 日本怡春院一区二区| 日韩三级电影网址| 国产精品一卡二卡在线观看| 亚洲成人综合网站| 欧美中文字幕一区二区三区| 日韩精品每日更新| 亚洲国产激情av| 91香蕉视频污在线| 免费在线观看一区二区三区| 日韩免费观看高清完整版 | 五月天激情综合| 日韩一区二区三区在线观看| 日韩成人精品视频| 日韩亚洲国产中文字幕欧美| 蜜桃视频在线一区| 国产精品乱人伦中文| 在线成人免费观看| 99久久国产综合精品色伊| 日韩福利视频导航| 中文字幕在线不卡国产视频| 欧美日韩高清一区二区不卡| 国产精品一区二区不卡| 喷白浆一区二区| 亚洲一区二区精品久久av| 亚洲色图清纯唯美| 韩国v欧美v亚洲v日本v| 久久你懂得1024| 精品国产一区二区三区久久影院| 91精品免费观看| 精品剧情在线观看| 国产亚洲美州欧州综合国| 2023国产精华国产精品| 日韩欧美国产综合在线一区二区三区| 欧美丝袜丝交足nylons图片| 不卡av在线网| 国产一区美女在线| 青青草97国产精品免费观看无弹窗版 | 精彩视频一区二区三区| 亚洲一二三四久久| 亚洲色欲色欲www| 日韩一区欧美小说| 国产精品高清亚洲| 国产精品久久久久久户外露出| 国产日韩三级在线| 国产精品久久毛片a| 中文字幕日韩一区| 亚洲影院久久精品| 蜜桃精品在线观看| 日本成人在线网站| 国产中文一区二区三区| 国产成人a级片| 在线亚洲人成电影网站色www| 色综合久久88色综合天天免费| 色综合中文字幕国产 | 亚洲乱码国产乱码精品精的特点| 精品99一区二区| 久久麻豆一区二区| 最新日韩在线视频| 亚洲成人综合网站| 国产一区视频网站| 色偷偷一区二区三区| 5月丁香婷婷综合| 久久久夜色精品亚洲| 国产精品情趣视频| 亚洲一区av在线| 成人在线综合网| 日韩小视频在线观看专区| 国产精品久久网站| 免费成人结看片| 欧美日韩久久久一区| 亚洲精品自拍动漫在线| 成人免费视频国产在线观看| 欧美一区二区国产| 亚洲成人三级小说| 在线播放中文字幕一区| 亚洲一区二区三区国产| 色综合一个色综合亚洲| proumb性欧美在线观看| 欧美性受xxxx黑人xyx| 欧美成人官网二区| 一区二区三区资源| 懂色一区二区三区免费观看 | 精品蜜桃在线看| 日本一区二区三区四区|