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.