マシンが接続されているときにリモート共有マウントを有効にする方法は?

マシンが接続されているときにリモート共有マウントを有効にする方法は?

リモートコンピュータが接続されているときにリモートSMB共有マウントをどのように有効にしますか?

これは、そのイベントに応答するアクションではなく、特定のリモートコンピュータの接続によってトリガーされたローカルイベントを識別することです。確認できるのはポートとプロトコル、もちろんソースIPとMAC​​です。

これを説明するために、BlueとGreenという2つの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ログレベルを高すぎる必要があるかもしれません。

今、なぜ私たちが代替アプローチの可能性を追求するために「何でもしよう」と努力しているのかを理解したと思います。

関連情報