그래서 3 개의 서버, s1, s2 및 d1이 있으며 여기서 d1은 samba 서버입니다. 내가 가진 프로세스는 s1에서 실행되는 스크립트가 파일을 생성하고 d1에 복사 한 다음 s2가 d1에서 해당 파일을 가져 와서 일부 프로세스를 실행한다는 것입니다.Bash 스크립트 : 공유 파일이 다른 서버에서 열려 있는지 확인하십시오.
제 문제는 s2에서 s1이 파일을 가져 오기 전에 d1에 파일을 완전히 쓰는 것을 확인해야한다는 것입니다. 이것들은 대용량 파일이기 때문에 s2가 가지고있는 crontab 설정에 따라 s2가 파일을 복사 할 준비가되었을 때 s1이 여전히 파일을 복사하려고 시도 할 때 겹칠 수 있습니다.
첫 번째 경향은 lsof를 사용하는 것이었지만 다른 서버가 파일을 사용하고있는 경우가 아니라 명령을 실행하는 서버에서 사용중인 파일 만 알려줍니다. 이 파일 검사를 스크립팅하는 방법에 대한 아이디어가 있습니까?
어떤 약에 대한 SSH 및 GREP를 통해 lsof의를 실행할 수'flock'? 잠금은 NFS를 통해 작동하지만 솔직히 삼바에 대해서는 전혀 모른다. – FatalError
@FatalError 그래서 s1이 파일을 복사 할 때 s2가 액세스 할 수 없도록 파일을 잠그기 위해 flock을 사용한다고 말하면서? 나는 samba 관련 명령을 d1에서 실행해야하므로 어쨌든 사용할 수 있다고는 생각하지 않습니다. –