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に要求する必要があります。
同じ共有のこのインストールは削除されません(私が見つけた唯一の違いはuser
sudoerであり、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です。