문제

UNIX 드라이브에서 Windows 드라이브에 파일을 복사하는 스크립트를 만들 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

보안 사본을 사용하여 항상 수동으로 수행합니다 (SCP). SCP는 이미 대부분의 UNIX 시스템에 설치되어 있습니다. 내 PC에서 설치했습니다 퍼티 Windows 용 안전한 터미널 앱이며 안전한 사본 유틸리티도 포함되어 있습니다.

Windows 명령 줄에서 보안 사본을 수동으로 수행하면 Unix 사용자 이름을 명령 줄 명령에 넣지 만 프롬프트에서 암호를 입력해야하므로 대화식입니다. 그러나 나는 또한 스크립트 나 배치 파일에서 그것을하는 것에 대해 생각했습니다. 이 경우 필요합니다 개인 및 공개 키를 만들고 설치하십시오 적절한 기계에서. 적절한 키를 생성하고 Windows와 Unix 시스템에 설치 한 다음 Windows 명령 라인 보안 사본을 수동으로 수행했으며 ~ 아니다 그 시간 내 비밀번호를 물어보십시오. 이것은 당신이 당신의 과제를 달성 할 수있는 한 가지 방법입니다. 그래도 다른 많은 방법이 있다고 확신합니다.

다른 팁

예, 운영 체제가 실행되는 한 스크립트가 유닉스 드라이브에서 읽고 Windows 드라이브에 쓸 수 있습니다. 이것은 vbscript에 태그가 지정되어 있으므로 Windows에서 실행 중이라고 가정 할 것입니다. 이것 Windows 용 UNIX 파일 시스템에 액세스하려면 Linux Ext 드라이버이지만). 그런 다음 작업을 완료하기 위해 표준 복사 기능을 실행하고 있습니다.

삼바 태그가 있으므로 UNIX 시스템에서 Windows 시스템에 네트워크 공유를 장착하는 것에 대해 이야기하고 있습니까?

그렇다면, 그것은 단지 일반적인 네트워크 드라이브처럼 취급되며 주식을 통해 권한이있는 것을 복사 할 수 있습니다.

나는 사용할 것이다 예상하다 도구.

다음은 업로드하는 방법입니다

  • /local/path/to/file

에게

  • \\HOST\SHARE\remote\path\to\file

인증 domain\user 비밀번호 사용 password:

expect <<<EOF
set timeout 10
spawn smbclient //HOST/SHARE "-Udomain\\user%password"
expect {
  "smb: \\\\\\\\>" {
    send "cd /remote/path/to\r"
    expect {
      "NT_STATUS_OBJECT_NAME_NOT_FOUND" {exit 1}
      "smb: *>"                         {
        set timeout -1
        send "put /local/path/to/file file\r"
        expect {
          "putting file " {
            expect "smb: *>" {exit 0}
          }
          "smb: *>" {exit 1}
        }
      }
    }
  }
}
# Timeout
exit 1
EOF
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top