标签: smb

由于额外的读取,通过网络读取文件很慢

我正在读取一个文件,我要么读取一行数据(1600个连续读取17个字节)或一列数据(1600个读取17个字节,由1600*17 = 27,200个字节分隔).该文件位于本地驱动器或远程驱动器上.我做了10次读取,所以我希望在每种情况下读取272,000字节的数据.

在当地的车道上,我看到了我的期望.在按顺序阅读的远程驱动器上,我也看到了我的期望,但在读取列时,我看到正在进行大量的额外读取.它们长度为32,768字节,似乎没有使用,但它们使读取的数据量从272,000字节跳到79 MB到106 MB.以下是使用Process Monitor的输出:

1:39:39.4624488 PM  DiskSpeedTest.exe   89628   ReadFile    \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,390,069, Length: 17
1:39:39.4624639 PM  DiskSpeedTest.exe   89628   FASTIO_CHECK_IF_POSSIBLE    \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Operation: Read, Offset: 9,390,069, Length: 17
1:39:39.4624838 PM  DiskSpeedTest.exe   89628   ReadFile    \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,388,032, Length: 32,768, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
1:39:39.4633839 PM  DiskSpeedTest.exe   89628   ReadFile    \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,417,269, Length: 17
1:39:39.4634002 PM  DiskSpeedTest.exe   89628   FASTIO_CHECK_IF_POSSIBLE    \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS …

windows performance smb file

6
推荐指数
1
解决办法
4627
查看次数

如何使用Java中的jcifs将文件从smb共享复制到本地驱动器?

有人可以帮我将文件从共享文件夹复制到本地驱动器吗?我的代码是:

import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import jcifs.smb.SmbFileOutputStream;;


public class smb {

      /**
      * @param args
      * @throws IOException
       */
      public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub


          String urlToBackUpFile = "smb://ip/backup$/test.txt"; 
          System.out.println("smb folder of source file" + urlToBackUpFile);
          NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "login", "pass");


            SmbFile dir = new SmbFile(urlToBackUpFile, auth);
            System.out.println(dir.getDate());
            SmbFile dest = new SmbFile ("C:/SQLRESTORESTAGE/v2.bak");
            dir.copyTo(dest);
      }
}
Run Code Online (Sandbox Code Playgroud)

不复制文件文件.我收到一条消息"无法连接到服务器",但程序显示源文件的dir.getDate()(以及文件名和长度).所以我认为目标文件夹的问题(C:/ SQLRESTORESTAGE /).另外,我只能阅读源文件.你能帮我修改代码或建议吗?谢谢.

java smb jcifs file-copying

6
推荐指数
2
解决办法
4万
查看次数

smbmount没有在Ubuntu 12.10上工作

我刚刚安装了Ubuntu 12.10,我试图将文件夹挂载到Ubuntu系统.所以我用过:

sudo smbmount <folder> /path/to/my/folder -ouser=<my id>, dom=<my dom>
Run Code Online (Sandbox Code Playgroud)

但是没有找到smbmount ...我现在拥有的只是cifs-utils.

上面的命令适用于Ubuntu 12.04,但不适用于12.10.

任何提示?

Thx提前:)

ubuntu smb cifs

6
推荐指数
1
解决办法
1万
查看次数

文件传输障碍在.net中使用Linux上的mono到windows文件共享

我正在编写一个.Net应用程序来在linux和windows之间传输文件.我使用mono来实现平台独立性.

我使用https://code.google.com/p/cifsclient/作为参考(感谢Jordi Martin).他令人敬畏的解决方案类似于我想要实现的目标.

我很难将文件从Windows共享(文件驻留在这里并与"EVERYONE"共享)传输到linux盒子(我的应用程序在单声道上运行)

解决问题的一种方法是在linux上安装共享的Windows文件夹.不幸的是,我没有root凭据,因此安装很困难. 第二种方法是,使用auth令牌(使用Windows凭据初始化为smbclient_init)将文件URL依次更改为smb:// fileSharePath.尽管令牌具有适当的信誉,但后续访问请求仍然失败.第三种方法是在文件共享路径前添加"net use"后缀为赢取信用,但这也是一种贬低.http://social.msdn.microsoft.com/Forums/vstudio/en-US/03bf0cf2-be80-43a4-870c-83727dee1c63/access-a-samba-share-via-c?forum=csharpgeneral

总而言之,我没有Windows共享的用户名/密码或运行我的应用程序的linux机器的根信誉.我没有空间服务即.ftp,http等正在运行.有没有办法覆盖从linux盒子传输文件到Windows文件共享的场景,反之亦然?

任何帮助将不胜感激,我已经摆弄了一个星期,但没有找到一个很好的解决方案.

提前致谢,

Shoeb

.net c# mono smb cifs

6
推荐指数
1
解决办法
1134
查看次数

检测SMB与SMB2的网络共享

给定UNC路径\\server\share,是否有任何方法可以使用Win32 API确定本地和远程计算机是使用SMB还是SMB2进行连接?

windows smb winapi cifs osx-mavericks

6
推荐指数
1
解决办法
1万
查看次数

挂载共享 cifs 的始终权限为 777

当我从 Synology NAS 装载 SMB 共享文件夹时,我遇到了一个小问题。我想挂载一个具有权限的共享文件夹:git:root 700

但是挂载的文件夹始终将权限设置为 777(即使在 chmod 700 之后也没有错误)

在我的/etc/fstab我用这一行:

#uid=999 ---> git user
//server/folder /mnt/artifacts cifs username=windowsUser,password=xxxxx,gid=0,uid=999,file_mode=0700,dir_mode=0700,iocharset=utf8 0 0
Run Code Online (Sandbox Code Playgroud)

你知道为什么我不能将我的权限设置为 700 吗?我做错了吗?有什么蠢事?

在此先感谢您的帮助 ;)

permissions smb debian mount cifs

6
推荐指数
3
解决办法
3万
查看次数

通过命令行连接到 SMB 服务器

mac 上的命令行相当于“连接到服务器”是什么意思?

连接到服务器

我想自动化该过程,而不是每次需要连接到服务器时都调用对话框。

macos smb

6
推荐指数
1
解决办法
1万
查看次数

在 Windows Server 1803 上重新启动后,使用 New-SmbGlobalMapping 为 docker 容器创建的 SMB 共享映射未恢复

我正在尝试创建一个简单的 Docker 主机来尝试将容器用于某些 .net 项目。

我已经设置了一个 Windows Server 1803 主机并使用 powershell 安装了 Docker EE,它作为服务正确运行。

我想使用自 1709 年以来可用的新“SMB 全局映射”功能来映射我的域上的 samba 共享并在容器中使用它,而无需求助于 gMSA 或其他技巧,我希望它在重新启动时使用 docker 自动挂载和启动容器重新启动策略,就好像它们是 Windows 服务一样。

我运行这些命令,一切正常

$creds = Get-Credential 

New-SmbGlobalMapping -RemotePath \\contosofileserver\share1 -Credential $creds -LocalPath G:

docker run -v G:/:G: -it test cmd.exe
Run Code Online (Sandbox Code Playgroud)

但是在主机重新启动后,G: 不再映射,因此我无法理想地将容器置于自动启动状态。我猜这是因为凭证没有在任何地方持久化,但即使在此之后,我怀疑 powershell 命令会使任何东西保持原样,也因为它缺少标准 New-SmbMapping 命令行开关的 -Persistent 参数。

powershell smb samba windows-server docker

6
推荐指数
2
解决办法
5415
查看次数

Samba 的 Java Mock 服务器框架

我正在尝试用 Java 为 Samba 客户端编写一些测试,并且需要找到一个可以创建模拟 Samba 服务器的框架。Mock FTP Server与 FTP 协议类似。

到目前为止,我只能找到模拟 Samba 库的服务,例如JCIFS,但找不到 Samba 服务器。是否有可用于模拟 Samba 服务器的框架?

任何帮助或建议将不胜感激。

java smb samba mocking

6
推荐指数
0
解决办法
1450
查看次数

使用 smb2 在 golang 中打开 Microsoft DFS 共享

我在 Windows Server 2012 上有一个 dfs 共享。我可以在 Windows 文件资源管理器中打开共享并从另一个系统读取文件,路径如下:\\dfsserver\usernamespace\Tom\go.png。但是,通过https://github.com/hirochachacha/go-smb2使用 golang 的 smb2 包,我得到一个错误:

响应错误:联系的服务器不支持 DFS 命名空间的指示部分

但是,如果我尝试使用实际共享路径\\dfsserver\public share\Tom\go.png打开该文件,则代码可以正常工作。所以问题是我不知道运行时的实际路径,并且我希望能够使用 DFS 提供的路径打开文件。

难道是DFS在smb2上不能正常工作吗?或者其他一些问题。预先感谢您的评论。

    func main(){
    
        // actualPath := `\\dfsserver\public share\Tom\go.png`
        // dfsPath := `\\dfsserver\usernamespace\Tom\go.png`
    
        conn, err := net.Dial("tcp", fmt.Sprintf("%s:%s", "dfsserver", "445"))
        if err != nil {
            fmt.Println(err)
        }
        defer conn.Close()
    
        dial := &smb2.Dialer{
            Initiator: &smb2.NTLMInitiator{
                User:     "user",
                Password: "password",
                Domain:  "dfsserver",
            },
        }
        session, err := dial.Dial(conn)
        if err != nil {
            fmt.Println(err)
        }
        defer session.Logoff()
    
        mountPoint, …
Run Code Online (Sandbox Code Playgroud)

smb microsoft-distributed-file-system go

6
推荐指数
0
解决办法
680
查看次数