서버 폴더를 마운트하지 않고도 Linux Bash 스크립트에서 Windows로 파일을 전송할 수 있습니까?

서버 폴더를 마운트하지 않고도 Linux Bash 스크립트에서 Windows로 파일을 전송할 수 있습니까?

로컬 Linux 시스템에서 Windows 서버로 파일을 전송하는 스크립트(Bash)를 작성 중입니다. Windows 서버에 정상적으로 접속 가능삼바mount.cifs공유하면 올바른 Windows 자격 증명과 함께 명령을 사용하여 Linux 시스템에 폴더를 탑재 할 수 있습니다 .

각 서버를 미리 설치하는 것도 싫고, 동적 설치도 사용하고 싶지 않기 때문에 sudo(스크립트는 루트가 아닌 일반 사용자로 실행됨) 접속할 수 있는 다른 방법이 있는지 알고 싶습니다. 서버, 예를 들어전송 제어 프로토콜파이프 또는 이와 유사한 것.

예를 들어, 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프로그램을 사용하면 Windows 컴퓨터에 FTP를 설치할 필요 없이 FTP와 유사한 Windows 파일 공유 인터페이스를 제공할 수 있습니다.

여기 몇 가지 예가 있어요.

로컬(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

관련 정보