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