# flock

> 쉘 스크립트에서 파일 잠금을 관리.
> 하나의 명령이 동시에 한 번만 실행되도록 보장하는데 사용 가능.
> 더 많은 정보: <https://manned.org/flock>.

- 잠금을 획득할 수 있을 때까지 기다린 후, 파일 잠금을 사용하여 명령 실행:

`flock {{경로/대상/lock.lock}} {{명령어}}`

- 파일 잠금을 획득할 수 없으면, 즉시 종료 (종료 코드: 1):

`flock {{[-n|--nonblock]}} {{경로/대상/lock.lock}} {{명령어}}`

- 파일 잠금을 획득할 수 없으면, 지정한 종료 코드로 종료:

`flock {{[-n|--nonblock]}} {{[-E|--conflict-exit-code]}} {{123}} {{경로/대상/lock.lock}} {{명령어}}`

- 최대 10초 동안 파일 잠금을 기다린 후, 획득하지 못하면 종료:

`flock {{[-w|--timeout]}} 10 {{경로/대상/lock.lock}} {{명령어}}`

- 동일한 잠금 파일을 사용하는 이전 `tar` 작업이 끝날 때까지 기다린 후, 백업을 수행 (`cron` 작업에서 자주 사용):

`flock {{경로/대상/백업.lock}} {{tar -cvf 경로/대상/백업.tar 경로/대상/데이터/}}`
