머신이 연결되어 있을 때 원격 공유 마운트를 활성화하는 방법은 무엇입니까?

머신이 연결되어 있을 때 원격 공유 마운트를 활성화하는 방법은 무엇입니까?

원격 컴퓨터가 연결되어 있을 때 원격 SMB 공유 마운트를 어떻게 활성화합니까?

이는 해당 이벤트에 대한 응답으로 취하는 조치보다는 특정 원격 컴퓨터의 연결에 의해 트리거된 로컬 이벤트를 식별하는 것에 관한 것입니다. 확인할 수 있는 것은 포트와 프로토콜, 물론 소스 IP와 MAC일 수도 있습니다.

이를 설명하기 위해 Blue와 Green이라는 두 대의 Windows 랩탑이 있고, 각각에는 때때로 Martini라는 Linux Samba 서버에 연결되는 Data라는 공유가 있다고 가정합니다. 목표는 Blue가 연결될 때 Martini가 \Blue\Data를 /srv/blue(또는 어디든)에 마운트하고(다른 작업을 수행하고) \Green\Data를 /srv/green(또는 어디에서나)에 마운트하고(그리고 다른 작업을 수행하는 것입니다) )) 녹색이 연결된 경우.

어쩌면 내가 너무 깊이 빠져있는지도 모르지만 보기보다 어렵습니다.

로컬 호스트가 원격 공유에 연결되면 원격 공유를 마운트하는 것은 매우 간단합니다.예를 들어, Martini가 시작되면 작업을 수행하고 파란색과 녹색이 실행되는 것을 찾아 재고를 설치합니다.

부팅할 때 VM에서 공유 호스트 마운트를 활성화하는 방법도 알아냈습니다(VM의 로그 파일을 모니터링하는 systemd.path 장치를 만든 다음 fstab에서 x-systemd.requires=foo.path를 만듭니다).

그러나 완전 원격 시스템의 경우 공백을 그립니다. iptables LOG 대상 및 rsyslog(직접 또는 systemd.path 장치를 통해)를 통한 원형 교차로/Rube Goldberg 방식이 있지만 움직이는 부분이 너무 많아서 패치워크처럼 보입니다. 좀 더 직접적인 것이 존재했으면 좋겠습니다.

소켓 활성화는 포트에 집중할 수 있지만 (쉽게 틀릴 수도 있음) 연결된 시스템을 인식하지 못하는 것 같습니다. Udev 활성화는 로컬호스트의 하드웨어에만 초점을 맞춘 것 같습니다. 클라이언트의 /dev, /proc 또는 확인할 다른 경로를 파악하지 못했지만 쉽게 놓칠 수 있습니다. /etc/samba/smb.conf에 뭔가 있을 수도 있습니다.

이 문제를 더 자세히 조사하기 전에 커뮤니티가 어떻게 생각하는지 알아보기 위해 게시해야겠다고 생각했습니다. 어떤 조언이라도 대단히 감사하겠습니다.

답변1

어쩌면 내가 너무 깊이 빠져있는지도 모르지만 보기보다 어렵습니다.

당신 말이 맞습니다. SMB 프로토콜 수준에서는 사용자 관점에서 보는 것보다 실제로 더 어렵습니다!

단일 SMB 클라이언트 호스트는 여러 TCP 연결을 병렬로 사용할 수 있으며, 사용 중이 아닐 때(예: 네트워크 오류 또는 장기간의 비활성으로 인해) 연결이 중단된 경우 클라이언트는 연결이 끊길 때 "원활하게" 다시 연결할 수 있습니다. 다시 필요하지만 사용자에게 연결이 항상 활성화되어 있다는 인상을 줍니다.

무엇보다도 이러한 요소로 인해 단순히 Samba 로그를 구문 분석하여 요청한 작업을 수행하는 것이 어렵거나 불가능해질 수 있습니다.

귀하는 귀하의 촉발 가능성에 대해 신경을 쓸 수도 있고 신경 쓰지 않을 수도 있습니다.물건여러 번 병렬로 수행되거나 "새 연결"이 실제로 기존 연결을 재구성하는 경우 불필요할 수 있습니다.

이러한 문제를 식별하고 방지할 수 있도록 필요한 프로토콜 세부 정보에 액세스하려면 다음을 수행해야 할 수도 있습니다.사용자 정의 Samba VFS 모듈 작성이렇게 하면물건잘못된 트리거를 방지하기 위해 적절한 프로토콜 이벤트와 필수 상태 정보를 유지합니다.

위에 링크된 문서에서:

VFS 모듈이 첫 번째 연결에서만 연결 시간 작업을 수행하고 마지막 연결 해제에서는 연결 해제 시간 작업만 수행해야 하는 경우 모듈에서 이를 주의 깊게 관리해야 합니다. VFS 모듈을 사용하기 위해 여러 공유를 구성하는 경우 사용자가 연결하는 각 공유에 대해 연결 및 연결 해제 기능이 한 번씩 호출된다는 점에 유의해야 합니다.

또한 Samba는 분기 모델을 사용하므로 각 클라이언트에는 별도의 smbd가 있으므로 클라이언트가 연결된 모듈의 각 공유에 대해 각 smbd에서 연결 함수가 호출됩니다.

귀하의 필요에 맞게 Samba VFS 모듈 프로그래밍 프로젝트를 시작하라는 제안은 귀하가 찾고 있는 것이 아닐 수도 있지만 귀하가 요구하는 바에 따르면 원격으로 신뢰할 수 있다고 할 수 있는 다른 솔루션은 없는 것으로 알고 있습니다.

나는 Samba 로그를 구문 분석하여물건: 세부 사항에 따라 생성된 로그의 양으로 인해 하나의 문제를 다른 문제로 바꾸게 될 수도 있는 목적에 적합한 이벤트를 얻으려면 Samba 로그 수준을 너무 높게 높여야 할 수도 있습니다.

이제 제가 왜 대안적 접근법의 가능성을 추구하기 위해 "무엇이든 하려고" 노력하는지 이해하셨으리라 믿습니다.

관련 정보