2025-06-28 19:25:29 -06:00
|
|
|
# flock
|
|
|
|
|
|
2026-08-06 22:19:46 -06:00
|
|
|
> 쉘 스크립트에서 파일 잠금을 관리.
|
|
|
|
|
> 하나의 명령이 동시에 한 번만 실행되도록 보장하는데 사용 가능.
|
2025-06-28 19:25:29 -06:00
|
|
|
> 더 많은 정보: <https://manned.org/flock>.
|
|
|
|
|
|
2026-08-06 22:19:46 -06:00
|
|
|
- 잠금을 획득할 수 있을 때까지 기다린 후, 파일 잠금을 사용하여 명령 실행:
|
2025-06-28 19:25:29 -06:00
|
|
|
|
2026-08-06 22:19:46 -06:00
|
|
|
`flock {{경로/대상/lock.lock}} {{명령어}}`
|
2025-06-28 19:25:29 -06:00
|
|
|
|
2026-08-06 22:19:46 -06:00
|
|
|
- 파일 잠금을 획득할 수 없으면, 즉시 종료 (종료 코드: 1):
|
2025-06-28 19:25:29 -06:00
|
|
|
|
2026-08-06 22:19:46 -06:00
|
|
|
`flock {{[-n|--nonblock]}} {{경로/대상/lock.lock}} {{명령어}}`
|
2025-06-28 19:25:29 -06:00
|
|
|
|
2026-08-06 22:19:46 -06:00
|
|
|
- 파일 잠금을 획득할 수 없으면, 지정한 종료 코드로 종료:
|
2025-06-28 19:25:29 -06:00
|
|
|
|
2026-08-06 22:19:46 -06:00
|
|
|
`flock {{[-n|--nonblock]}} {{[-E|--conflict-exit-code]}} {{123}} {{경로/대상/lock.lock}} {{명령어}}`
|
|
|
|
|
|
|
|
|
|
- 최대 10초 동안 파일 잠금을 기다린 후, 획득하지 못하면 종료:
|
|
|
|
|
|
|
|
|
|
`flock {{[-w|--timeout]}} 10 {{경로/대상/lock.lock}} {{명령어}}`
|
|
|
|
|
|
|
|
|
|
- 동일한 잠금 파일을 사용하는 이전 `tar` 작업이 끝날 때까지 기다린 후, 백업을 수행 (`cron` 작업에서 자주 사용):
|
|
|
|
|
|
|
|
|
|
`flock {{경로/대상/백업.lock}} {{tar -cvf 경로/대상/백업.tar 경로/대상/데이터/}}`
|