zoukankan      html  css  js  c++  java
  • 利用smbclient实现操作windows共享文件

          当安装好一台windows服务器,需要将一些文件上传到这个操作系统,而本网段只有linux操作系统时,我们可以想到的方法可能有两种:

    1. 使用远程桌面挂载本地硬盘
    2. 通过ssh服务进行传输

          但有些时候,这台windows的操作系统不是通过pxe定制过的,同时远程桌面连接是跨国家的,因此受制于对方没有ssh服务或者网络速度过慢影响。当需要传输一个大文件时,只能依靠远程桌面挂载本地硬盘;当经历了漫长的等待后,传送完99%,系统通知找不到路径!崩溃吧,然后不得不将命运再次交给网络。。。。

          那么,有没有更好的方法?答案是肯定的,而且不仅很多种。这里向大家介绍一种常被忽略的方法:

                  将文件转义到本地区网络内,再使用smbclient将文件上传到目标windows服务器

          使用条件:

    1. windows服务器开启Server服务,对外提供共享服务
    2. 源文件服务器安装smbclient,一般默认安装
    3. 访问windows共享目录的权限:用户名和密码

         使用方法

    1. 查看目标windows服务器共享目录
      #smbclient -L //10.12.0.1/ -Uadministrator

      Password:
      Domain=[MyServer-55D13420A0] OS=[Windows Server 2003 R2 3790 Service Pack 2] Server=[Windows Server 2003 R2 5.2]

      Sharename Type Comment
      --------- ---- -------
      IPC$ IPC ? IPC
      C$ Disk 丐q?
      ADMIN$ Disk ??
      session request to 10.12.0.1 failed (Called name not present)
      session request to 10 failed (Called name not present)
      Domain=[MyServer-55D13420A0] OS=[Windows Server 2003 R2 3790 Service Pack 2] Server=[Windows Server 2003 R2 5.2]

      Server Comment
      --------- -------

      Workgroup Master
      --------- -------

    2. 连接目标windows服务器共享目录(windows安装完毕会开启驱动器的隐藏共享,需要管理员权限,访问路径是:盘符+$)
      #smbclient //10.12.0.1/c$ -Uadministrator
      Password: (输入正确的密码)
      Domain=[MyServer-55D13420A0] OS=[Windows Server 2003 R2 3790 Service Pack 2] Server=[Windows Server 2003 R2 5.2]
      smb: \>(出现提示符表示连接成功)
    3. 上传文件
      smb: \> put file1.rar (上传单个文件)
      smb: \> mput file1.rar file2.rar (上传多个文件)
    4. 下载文件
      smb: \> get file1.rar (下载单个文件)
      smb: \> mget file1.rar file2.rar (下载多个文件)
    5. 改变远程共享目录
      smb: \> cd doc (相对连接共享目录)
    6. 使用账号权限连接,并自动执行命令
      #smbclient //10.12.0.1/c$ -U administrator%password -c "put file1;quit"
    7. 更多命令

      ? chmod get listconnect mget posix_mkdir pwd rename stat vuid
      altname chown getfacl lock mkdir posix_open q reput symlink wdel
      archive close hardlink logon more posix_rmdir queue rm tar
      blocksize del help lowercase mput posix_unlink quit rmdir tarmode
      cancel dir history ls newer print rd setmode translate
      case_sensitive du lcd mask open prompt recurse showacls unlock
      cd exit link md posix put reget showconnect volume

    8. 退出
      smb: \>quit

          注意事项:

    1. 连接路径后必须要有已存在的共享目录
    2. 共享目录要有文件访问权限
    3. smbclient命令的参数要放在机器名后,否则会被当成服务器地址
    4. 文件传输完成后,要及时关闭windows系统的Server服务,保障系统安全
  • 相关阅读:
    vim符号列表
    vim树形目录
    用java实现二叉树的遍历算法
    Java 泛型
    Java简单实用代码分享,这里一定有你想要的!
    Java对象大小的计算方式
    JavaScript 类型转换
    只需亿小串代码,教你用java仿制qq
    软帝学院教你HTMLDOM是什么
    MySQL 教程
  • 原文地址:https://www.cnblogs.com/ivistn/p/3012468.html
Copyright © 2011-2022 走看看