Linux 文件鎖的簡單使用

一般情況下,我們利用crontab執行計劃任務,間隔都不會太短,比如一天一次,甚至一週乃至一月一次。

所以一般而言,這都不會有什麼問題。

但是如果在某些極端情況下:例如我們需要每次執行的計劃任務需要完全結束,纔可以執行下一次,否則會導致出問題。

那麼這個時候【文件鎖】(flock)就發揮作用了。

下面介紹一個簡單的文件鎖(flock)用法:

常見的參數:

flock -xn 鎖文件 -c "shell"
flock -x 鎖文件 -c "shell"

以上內容看起來不太直觀,那麼先來解釋一下:

flock是文件鎖的命令,兩行的參數相差一個 n ,第一行 -xn, 使用這個參數,當執行發現文件被鎖,則後面的shell命令/腳本直接執行失敗。第二行則不同,單獨使用 -x 時,如果發現文件被鎖,則會等待文件鎖解除時,再執行後面的shell命令/腳本。

注意,在這裏,【鎖文件】本身沒有實在的意義,它只是一個標記,所以可以手工隨意touch一個。

下面是我 crontab 的其中一行:

*/1     *       *       *       *       flock -x /root/file.lock -c "sh /root/file.sh"


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章