cifsマウントフォルダの接続が切断されます(Ubuntuサーバー)

cifsマウントフォルダの接続が切断されます(Ubuntuサーバー)

TomcatアプリケーションがWindows Samba共有フォルダから読み書きできるようにする次のfstabエントリがあります。

//dc/docs    /media/docs      cifs       credentials=...,rw,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777,sec=ntlm,uid=tomcat7,gid=tomcat7,dir_mode=0770,file_mode=0770 0 0

問題は、一定時間が経過しても引き続き削除されることです。 Windowsの欠陥ではなく、他の場所から共有にアクセスできます。

$ sudo ls /media/docs
finance  postsale  repository

#after e.g. 10 minutes...
$ sudo ls /media/docs
[sudo] password for user:
ls: cannot access '/media/docs': Connection reset by peer

#this takes ages to complete
$ sudo umount /media/docs

#this fails immediately after, succedes after about 5/10 seconds
$ sudo mount /media/docs
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
$ sudo mount /media/docs
mount error(104): Connection reset by peer
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
$ sudo mount /media/docs
$ sudo ls /media/docs
finance  postsale  repository

落下をデバッグまたは防止するにはどうすればよいですか?

Tomcatアプリケーションのユーザーには再インストール権限がないため、毎回ITに要求する必要があります。

同じ共有のこのインストールは削除されません(私が見つけた唯一の違いはusersudoerであり、tomcat7上記の場合はそうではありません)。

//dc/share       /media/share     cifs       credentials=....credentials,rw,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777,sec=ntlm,uid=user,gid=user,dir_mode=0770,file_mode=0770 0 0

修正する:

フォルダが/var/log/samba空です。 Sambaロギングを設定する方法は?

フォルダの一覧を表示しても削除されません。

while true; do date; ls /media/docs; sleep 5; done

アップデート2:

mount出力は次のとおりです。

//fs-mxp/ZZZshare on /media/share type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=XXX,domain=YYY-it,uid=1000,forceuid,gid=1000,forcegid,addr=10.39.52.6,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)
//fs-mxp/ftp on /media/ftp type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=XXX,domain=YYY-it,uid=1000,forceuid,gid=1000,forcegid,addr=10.39.52.6,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)
//sql-mxp/C$ on /media/sql type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=administrator,domain=YYY-it,uid=1000,forceuid,gid=1000,forcegid,addr=10.39.52.11,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)
//fs-mxp/ZZZdocs on /media/docs type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=YYYdoc,domain=YYY-it,uid=113,forceuid,gid=123,forcegid,addr=10.39.52.6,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)
//fs-mxp/ZZZshare/ASTE on /home/esales/aste type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=XXX,domain=YYY-it,uid=1001,forceuid,gid=1002,forcegid,addr=10.39.52.6,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)
//fs-mxp/ftp/YYYvendor on /home/esales/YYYvendor type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=XXX,domain=YYY-it,uid=1001,forceuid,gid=1002,forcegid,addr=10.39.52.6,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)

答え1

私はこれがランサムウェア攻撃を防ぐためにWindows Updateによって提供されるパッチに関連していると推測します。これにより、共有フォルダを保持するサーバーがCIFS V1要求を拒否します。デフォルトでは、マウントにはCIFS V1が使用されます。vers=2.0インストールコマンドの最後に追加してみてください。私は同じ問題に直面し、この方法で問題を解決することができました。 PS / NOTE:私のコマンドは次のとおりです

//192.168.1.10/public/mount /media/windowsshare cifs credentials=/home/MY_USERNAME/.smbcredentials,iocharset=utf8,sec=ntlm,vers=2.0 0 0

答え2

質問に追加したインストール結果を見ると、まだCIFS 1.0を使用していることがわかります。

サーバーがサポートしている場合は、CIFS 2.1としてマウントすることをお勧めします。これは、CIFS v2.0または2.1以降、プロトコルが接続のスリープ/切断でより良い回復をサポートしているためです。これのオプションはですvers=2.1

耐久性のあるハンドル(2.02、2.1) - 一時的に切断された場合は、サーバーに透過的に再接続できます。

また、whileループを追加するのではなく、このオプションを追加することをお勧めしますecho_interval=60。これは、SMBクライアントコードが毎分サーバーに接続維持ビーコンを送信するためです。

@Thillinaの答えで警告して修正したように、オプションはすべて3番目のフィールドにあり、コンマで区切られています。

詳細については、次を参照してください。CIFSは、Windows共有への接続がランダムに切断されます。

私の投稿で参照した記事を読んでください。

3.0 - Microsoft Windows 8およびWindows Server 2012で導入されたSMBv3.0プロトコル。

これは、Windows Server 2012がWindows側で少なくともCIFSv3.0以下をサポートしていることを意味します。

再ネゴシエーションが発生するか、どのバージョンが使用されているかを確認するには、ファイルのオプションを変更してfstab次の手順を実行します。

#mount -o remount /media/docs

次に、コマンドを実行してインストールのmount完了/ネゴシエートされたバージョンを確認します。

答え3

私は接続を維持するために3分ごとにcifs各共有のファイルに触れるクローンを実行しました。mount

これまで、在庫は通常の供給状態に戻ってきました。

cifs_keepalive:

#!/bin/bash

while read spot; do
   touch --no-create "${spot}/.cifs_keepalive"
done <<< "$(mount | awk '/cifs/{ print $3; }')"

/etc/cron.d/cifs_keepalive:

*/3 *   *   *   *   root    /home/bcait/bca_util/bin/cifs_keepalive >/dev/null 2>&1

クレジット:私のアイデアは以下から来ています。このブログ投稿

答え4

私の場合、他のネットワークインターフェイスの接続が失われました。これらのインターフェイスのDHCPリースの期限切れによりマウント損失が発生するhttp://ubuntuforums.org/showthread.php?t=1140094サンバがリロードされました。

私はこれらのインターフェイスを無効にしました。別の考えられる解決策は、時間制限がゼロのautofsです。

関連情報