是否可以在不安装服务器文件夹的情况下将文件从 Linux Bash 脚本传输到 Windows?

是否可以在不安装服务器文件夹的情况下将文件从 Linux Bash 脚本传输到 Windows?

我正在编写一个脚本 (Bash) 将文件从本地 Linux 计算机传输到 Windows 服务器。 Windows 服务器可以正常访问桑巴舞共享,并且我可以使用mount.cifs具有正确 Windows 凭据的命令将文件夹安装到我的 Linux 计算机。

因为我不想提前安装每台服务器,也不想使用动态安装sudo(脚本以普通用户身份执行,而不是 root),所以我只是想知道是否可以通过其他方式访问服务器,例如传输控制协议管道或类似的方式。

例如,在 Windows 下,我可以使用以下命令将服务器的文件夹安装到驱动器号净使用命令,但也无需像这样安装:

c:> net use \\my-server.domain.com passwd123 /user:domain\myuser
c:> cp d:\myfiles.zip \\my-server.domain.com\d$\temp\destination

如果我创建一个net use,我可以看到打开的连接(没有分配字母):

    Status       Local     Remote                    Network
-------------------------------------------------------------------------------
OK                     \\myserver.domain.net\IPC$
                                                Microsoft Windows Network
The command completed successfully.

我不想在 Windows Server 上安装 sshd 或 ftpd。我只想用中小企业协议。作为后备措施,我将在文件副本之后sudo mount.cifs [options] /mnt/temp-folder执行类似的安装。sudo umount /tmp/temp-folder

答案1

您可以使用该smbclient程序为您提供类似于 FTP 的 Windows 文件共享界面,而无需在 Windows 计算机上安装 FTP。

以下是一些示例:

将文件从本地(unix/linux)传输到 Windows:

smbclient //server.domain.org/d$ <password> -W domain.org -U <my-user> -c "put file-local.xml folder1\folder2\file.xml"

将文件从 Windows 传输到 Linux:

有两个选项,第一个是使用命令“get” smbclient,第二个是最短的一个smbget::

1. smbclient: `smbclient //server.domain.org/d$ <password> -W domain.org -U <my-user> -c "get folder1\folder2\file.xml file-local.xml"`
2. smbget: `smbget -u <my-user> -p <password> -w domain.org -o destination-file.txt smb://server.domain.org/d$/folder1/folder2/source-file.txt`

答案2

你可以尝试类似wput [options] [file]... [url]... ftp://[username[:password]@]hostname[:port][/[path/][file]] wget

相关内容