예를 들어, 큰 파일(예: 500mb)을 백업(예: 500mb)하고 이를 HDD A의 폴더 A에 저장하는 Java 프로세스가 있고 전체 폴더 A를 하루에 한 번 복사하도록 cron 스크립트를 예약하려는 경우 HDD B로... Java 프로세스가 폴더 A에 쓰는 동안 cron 스크립트가 트리거되면 어떻게 됩니까? 기다릴까요? 아직 작성되지 않은 파일은 무시됩니까?
답변1
일반적으로 Unix 명령은 파일이 열려 있고 기록되고 있는지 여부에 관계없이 파일을 동일한 방식으로 처리합니다. 따라서 cron 작업을 사용하여 cp
디렉터리를 복사하는 경우 복사되는 내용은 명령이 디렉터리를 검사할 당시 디렉터리에 있던 내용에 따라서만 달라집니다 cp
. 파일에 cp
액세스할 때 부분적으로만 기록된 경우 부분적으로 기록된 복사본이 만들어집니다. 이러한 일이 발생하지 않도록 하려면 협력 프로세스 간에 잠금 체계를 구현하여 디렉터리에 대한 동시 액세스를 방지해야 합니다.