Ubuntu 16.04 헤드리스 시스템에는 두 개의 디렉토리가 있습니다. cronjob이 모든 파일을 디렉터리 A에서 디렉터리 B (동일한 파티션, 동일한 하드 드라이브, 동일한 파일 시스템 등)로 이동하기를 원합니다. 문제는 다음과 같을 수 있습니다. 파일이 매우 크고 어떤 이유로 cronjob이 매분마다 자주 실행되어야합니다.
따라서 다음 시나리오는 매우 가능성이 높습니다. cronjob이 처음으로 시작되고 디렉토리 A에서 큰 파일을 찾아서 디렉토리 B로 이동하기 시작합니다. mv 프로세스가 계속 실행되는 동안 cronjob이 두 번째로 실행됩니다. 이로 인해 문제가 발생합니까?
나는이 질문을 발견하고 여러 프로세스가 두 개의 서로 다른 파일 시스템 사이에서 동일한 파일을 mv하려고 할 때 어떤 일이 발생 하지만 동시에 시작된 프로세스에 관한 것이라고 생각합니다. cronjobs가 원치 않는 동작을 방지하는 방법이 있기를 바랍니다.
mv 프로세스가 계속 실행되는 동안 cronjob이 두 번째로 실행됩니다. 이로 인해 문제가 발생합니까?
그렇습니다.
일반적으로 스크립트를 작성하고 해당 스크립트에 상호 배제 잠금 (MUTEX)을 넣고 잠금이 있으면 스크립트 실행을 중지하고 첫 번째 cronjob에서 "mv"가 완료되면 잠금을 제거하는 것이 좋습니다.
아주 기본적인 예 :
if mkdir /var/lock/mylock; then
mv your_file /to/a/directory/
rm -rf /var/lock/mylock
else
exit 1
fi
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다