
공유 디렉토리가 있습니다 /path/to/dir
. 해당 디렉터리에서 백업 프로세스를 실행 중입니다. 프로세스는 서버 A에서 실행되고 있지만 저는 서버 B에만 액세스할 수 있습니다. 따라서 서버 A에서 백업 프로세스가 완료되면 /path/to/dir
서버 B에서도 사용할 수 있는 공유 디렉터리에 데이터가 있게 됩니다.
이제 서버 B에 백업 프로세스가 완료된 경우에만 실행될 수 있는 bash 스크립트가 있습니다. 다른 서버에 액세스할 수 없기 때문에 다음과 같은 생각을 했습니다.
백업 프로세스에서 가 아직 사용 중인지 확인 /path/to/dir
하고 해당 프로세스가 디렉터리에서 더 이상 실행되지 않는 경우에만 내 스크립트를 실행할 수 있습니까?
공유 디렉터리(NFS)라는 것을 아는 것이 중요한지 모르겠습니다.
답변1
더 나은 솔루션: 작업이 실행되는 동안에만 존재하고 해당 작업이 완료되면 서버 A에서 삭제되는 공유에 잠금 파일을 만듭니다.
서버 B에서는 이 파일이 존재하는지 확인하고 존재한다면 파일이 사라질 때까지 기다리면 됩니다.
답변2
example_output.tar.gz.part
모든 작업이 완료된 후에만 파일을 생성하도록 제작 앱 A를 설정하고 이름을 다음으로 바꿉니다.example_output.tar.gz
*.part
파일을 무시하고 일치하지 않는 모든 파일을 처리하도록 소비 앱 B를 설정합니다.*.part
이 체계는 많은 소비자 애플리케이션(웹 브라우저 또는 scp 클라이언트가 떠오름)에서 사용되기 때문에 인식할 수 있습니다.
이렇게 하면 잠금 파일이 필요하지 않으며 여러 소비자를 가질 수 있습니다. 응용 프로그램이 종료된 후(또는 서버가 재부팅된 후) 이전 잠금 파일이 남아 있는 경우 잠금 파일은 항상 잠재적인 실패 원인이 됩니다.