Windows에서 Linux로 파일 복사


16

하나의 스크립트를 작성 중입니다. 하나의 리눅스 머신을 실행합니다. 그것의 목표는 리눅스, 솔라리스 및 윈도우를 포함합니다.

scp를 사용하여 * nix간에 파일을 복사 할 수 있다는 것을 알고 있습니다. 그러나 Windows에서 파일을 복사하는 것은 어떻습니까?

이 창은 테스트 시스템으로, OS를 자주 다시 설치할 수 있기 때문에 특정 소프트웨어를 설치할 것으로 예상 할 수 없습니다.

답변:


21

삼바를 사용하십시오 .

Samba는 Windows와 호환되는 파일 공유 서비스를 제공합니다.

/srv/samba/sharenameLinux 컴퓨터에서 디렉토리 (예 :)를 공유하고 다음과 같이 Windows에서 디렉토리에 액세스 할 수 있습니다 \\linuxservername\sharename. Windows 측에는 추가 소프트웨어가 필요하지 않습니다.

Samba는 대부분의 Linux 배포판에 포함되어 있습니다. 패키지 관리자를 사용하여 설치하십시오 (예 :

  • 우분투 : 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 방화벽을 구성해야 할 수도 있습니다 ( 이것이것 참조 ).


위의 설명에서 Linux 컴퓨터는 Samba 서버이며 Windows는 그로부터 공유를 마운트합니다.

아래의 의견에서 귀하 는 전송 프로세스를 자동화하고 싶다고 언급했습니다 . Windows가 서버 역할을하고 Linux가 서버를 사용하여 서버 역할을하도록 역할을 반대로함으로써이를 달성 할 수 있습니다 smbclient.

함께 smbclient모든에서 Windows 공유를 마운트 할 필요가 없습니다. 예를 들어 Linux 컴퓨터에서 검색 C:\Directory\file.txt하여 복사하려면 다음 /tmp을 수행하십시오.

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

-c실행할 명령입니다. 자세한 내용 man smbclient을 참조하십시오.

-U 로 지정된 공유에 액세스하기위한 사용자 이름 및 비밀번호 username%password

필요에 따라 수정하고 스크립트에 추가하십시오.


@max, 큰 답변 감사합니다. 삼바가 Windows에서 작동 할 수 있다는 것을 알고 있습니다. 그러나 파일을 복사 할 때는 여전히 사람의 참여가 필요합니다. 내 스크립트가 하나의 Linux에서 실행되고 컴퓨터가 samba를 설치 한 경우 하나의 스크립트가 복사 작업을 수행하도록하려면 어떻게해야합니까? Windows 디스크를 Linux에 더 잘 마운트 한 다음 Linux에서 액세스 할 수 있습니다. 삼바가 이것을 할 수 있습니까?
Alex

그렇습니다, 삼바는 이것을 할 수 있습니다. 또한 Windows 공유를 전혀 탑재 할 필요가 없습니다. smbclientWindows 공유에 연결하고 파일을 복사하고 연결을 끊는 데 사용할 수 있습니다 . 내 답변을 편집하고 살펴보십시오.
jaume

천만에요, 도와 드리겠습니다.
jaume

1
특히이 -c옵션은 간단한 경우에 사용할 가치가 있습니다. 내 컴퓨터에서 암호는 옵션없이 간결한 인수로 제공됩니다. 또한-를 사용하여 자격 증명을 명령 줄 독자 ( 예 : ps또는 [h]top)를 사용하여 멀리 두는 것이 좋습니다 -U $(cat .username) $(cat .password).
Tomasz Gandor

3

특정 소프트웨어를 설치할 수는 없지만 Windows 용 SSH / SCP / SFTP 클라이언트가 있으므로 특정 설치가 필요하지 않습니다. 실행 파일 만 사용할 수 있습니다. 내가 계속 생각하는 것은 동반자 와 도구 가있는 PuTTY 이지만 대안이 존재한다고 확신합니다. 및 커맨드 라인에서 완전하게 구동 될 수있어, 작업의 자동화에 적합하다. 둘 다 "모든 대화식 프롬프트 비활성화"로 설명 되는 스위치를 가지고 있으며 거의 ​​확실하게 활용할 수 있습니다.pscppsftppscppsftp-batch

서버에 이미 SSH / SCP / SFTP 서버가 설치 및 구성되어 있으므로 해당 파일을 복사 할 목적으로 호스트 중 하나에 소프트웨어를 설치하지 않아도됩니다.

또 다른 단점은 PuTTY가 허용 라이센스에 따라 오픈 소스라는 사실 일 수 있습니다. 따라서 원하는대로 즉시 원하는 작업을 수행하지 않으면 원하는 방식으로 작동하기가 비교적 쉽습니다.


1
추천 해 주셔서 감사합니다. 나는 pscp와 psftp를 시도 할 것이다. 그들은 또한 훌륭한 도구입니다.
Alex

1

나는 CentOS 6사용자 이므로이 방법을 시도했다.CentOS 6

다음을 사용하여 Samba 설치

[root @ server ~] # yum 설치 삼바

확인 요청

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

Samba 사용자를 작성하십시오.

[root @ server ~] # useradd sambashare

이제 smbpasswd 명령을 사용하여 username sambashare에 대한 samba 비밀번호를 작성하십시오.

[root @ server ~] # smbpasswd -a sambashare
새로운 SMB 비밀번호 :
새 SMB 비밀번호를 다시 입력하십시오.
사용자 sambashare를 추가했습니다.

삼바 공유 디렉토리 만들기

[root @ server ~] # mkdir / share

공유 폴더의 소유권 변경

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

파일을 열고 /etc/samba/smb.conf아래 줄을 추가하십시오.

[공유]
댓글 = 공유
경로 = / share
쓰기 가능 = 예
유효한 사용자 = sambashare

삼바 서비스 시작

[root @ server ~] # 서비스 smb 재시작
SMB 서비스 종료 : [OK]
SMB 서비스 시작 : [OK]

testparm명령 을 사용하여 구성을 확인하십시오.

.
.
[공유]
댓글 = 공유
경로 = / share
유효한 사용자 = sambashare
읽기 전용 = 아니오

Windows 시스템에서 이것을 입력하십시오 run

여기에 이미지 설명을 입력하십시오

이제 삼바 사용자 이름과 비밀번호를 입력하십시오

여기에 이미지 설명을 입력하십시오

끝났습니다

여기에 이미지 설명을 입력하십시오


정말 고마워요 초보자를위한 생생한 튜토리얼.
Alex

@Alex 당신은 환영합니다 ... :-)
최대
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.