将文件从 Windows 复制到 Linux

将文件从 Windows 复制到 Linux

我正在编写一个脚本。它将运行一台 Linux 机器。其目标包括 Linux、Solaris 和 Windows。

我知道我可以使用 scp 在 *nix 之间复制文件。但是从 Windows 复制文件怎么样?

这些 Windows 是测试机器,不能指望它们安装特定的软件,因为操作系统可以经常重新安装。

答案1

使用桑巴

Samba提供与Windows兼容的文件共享服务。

/srv/samba/sharename您可以在 Linux 计算机上共享一个目录(例如),然后从 Windows 访问它,如下所示: \\linuxservername\sharename。它不需要 Windows 端的任何额外软件。

大多数 Linux 发行版都包含 Samba。使用包管理器安装它,例如:

  • 乌本图:sudo apt-get install samba smbclient

  • 苏西:zypper samba

  • CentOS/RedHat:yum install samba

要配置 Samba,请参阅:

或者搜索 Google 来找到适合您的发行版的指南。

请注意,如果你使用 Linux 防火墙,则可能需要对其进行配置,以接受对端口 137/tcp、138/tcp、139/tcp 和 445/tcp 的连接(请参阅)。


在上面的描述中,Linux 计算机是 Samba 服务器,Windows 从中安装共享。

在下面的评论中您提到您希望实现转移过程的自动化。这可以通过反转角色来实现,这样 Windows 充当服务器,而 Linux 使用 连接到它smbclient

smbclient根本不需要挂载 Windows 共享。例如,要检索C:\Directory\file.txt并将其复制到/tmpLinux 计算机上,请执行以下操作:

smbclient '//windowsserver/c$' -c 'lcd /tmp; cd Directory; get file.txt' -U administrator%password

-c要执行的命令。请参阅man smbclient了解详情。

-U访问共享的用户名和密码指定为username%password

根据您的需要进行修改并将其添加到您的脚本中。

答案2

我知道您说您不能指望安装特定的软件,但 Windows 的 SSH/SCP/SFTP 客户端不需要任何特殊安装;只有可执行文件可用。我一直使用的客户端是油灰与其同伴pscppsftp工具一样,但我确信存在替代方案。pscp并且psftp可以完全从命令行驱动,因此非常适合自动化任务。它们甚至都有一个-batch开关,描述为“禁用所有交互式提示”,几乎肯定可以利用。

由于您可能已经在服务器上安装并配置了 SSH/SCP/SFTP 服务器,因此这样就避免了仅仅为了复制这些文件而必须在任一主机上安装任何软件。

另一个好处可能是 PuTTY 是在宽松的许可下开源的,所以如果它不能按照你的需要开箱即用,那么让它按照你喜欢的方式运行应该相对容易。

答案3

我发现最简单的方法是使用斯姆格特

smbget smb://PATH/TO/FILE/test.txt

如果需要身份验证(如果没有提供密码,它将提示输入密码):

smbget smb://PATH/TO/FILE/test.txt -U "[email protected]%myPassword"

还可以指定文件的保存位置以及复制后的文件名:

smbget smb://PATH/TO/FILE/test.txt -U "[email protected]%myPassword" -o /LINUX/PATH/remote_test_file

答案4

我是一名CentOS 6用户,所以我尝试了这个方法CentOS 6

使用以下方式安装 samba

[root@server ~]# yum 安装 samba

查询确认

[root@server ~]# rpm -qa samba
samba-3.5.10-125.el6.i686

创建 Samba 用户。

[root@server ~]# useradd sambashare

现在使用 smbpasswd 命令为用户名 sambashare 创建 samba 密码。

[root@server ~]# smbpasswd -a sambashare
新的 SMB 密码:
重新输入新的 SMB 密码:
添加了用户 sambashare。

创建samba共享目录

[root@server ~]# mkdir /share

更改共享文件夹的所有权

[root@server ~]# chown -R sambashare:sambashare /share/

打开文件/etc/samba/smb.conf并添加以下行。

[分享]
评论 = 分享
路径 = /共享
可写 = 是
有效用户 = sambashare

启动 samba 服务

[root@server ~]# 服务 smb 重启
关闭 SMB 服务:[确定]
启动 SMB 服务:[确定]

testparm使用命令检查配置


[分享]
评论=分享
路径 = /共享
有效用户 = sambashare
只读 = 否

在 Windows 系统中输入run

在此处输入图片描述

现在输入 samba 用户名和密码

在此处输入图片描述

你已经完成了

在此处输入图片描述

相关内容