linux使用flock檔案鎖

2021-09-26 04:03:42 字數 1277 閱讀 9448

使用linux flock 檔案鎖實現任務鎖定,解決衝突

格式:flock [-sxun][-w #] fd#

flock [-sxon][-w #] file [-c] command

flock --help

flock (util-linux-ng 2.17.2)

usage: flock [-sxun][-w #] fd#

flock [-sxon][-w #] file [-c] command...

flock [-sxon][-w #] directory [-c] command...

-s --shared get a shared lock

-x --exclusive get an exclusive lock

-u --unlock remove a lock

-n --nonblock fail rather than wait

-w --timeout wait for a limited amount of time

-o --close close file descriptor before running command

-c --command run a single command string through the shell

-h --help display this text

-v --version display version

-s, --shared: 獲得乙個共享鎖

-x, --exclusive: 獲得乙個獨佔鎖

-u, --unlock: 移除乙個鎖,通常是不需要的,指令碼執行完會自動丟棄鎖

-n, --nonblock: 如果沒有立即獲得鎖,直接失敗而不是等待

-w, --timeout: 如果沒有立即獲得鎖,等待指定時間

-o, --close: 在執行命令前關閉檔案的描述符號。用於如果命令產生子程序時會不受鎖的管控

-c, --command: 在shell中執行乙個單獨的命令

-h, --help 顯示幫助

-v, --version: 顯示版本

example:  crontab運用flock防止重複執行

touch /tmp/my.lock  # 建立乙個鎖檔案

*/30  * * * * loki flock -xn /tmp/my.lock -c 'sh 你的指令碼檔案.sh'   # -n 為非阻塞模式,會等一直等待程式執行完畢後再執行

解決問題:

防止某個指令碼沒有執行完畢的同時又另外的指令碼再次啟動

linux使用flock檔案鎖

使用linux flock 檔案鎖實現任務鎖定,解決衝突 格式 flock sxun w fd flock sxon w file c command flock help flock util linux ng 2.17.2 usage flock sxun w fd flock sxon w f...

linux使用flock檔案鎖解決指令碼重複執行問題

linux的crontab命令,可以定時執行操作,最小週期是每分鐘執行一次。關於crontab實現每秒執行可參考我之前的文章 linux crontab 實現每秒執行 現在有個問題,如果設定了任務每分鐘執行一次,但有可能一分鐘內任務並沒有執行完成,這時系統會再執行任務。導致兩個相同的任務在執行。例如...

linux的flock命令 檔案鎖

mysql,如果多個請求同時,請求操作乙個表,乙個存,乙個讀,就會造成髒讀.所以有了事務,有了鎖表 linux在多個程序同時操作同一份檔案的時候,很容易導致檔案混亂,這時候就需要鎖,來保證檔案的完成性.flock主要三種操作型別 lock sh,常被用作讀共享鎖 lock ex,只能被乙個進行使用,...