쉘 스크립트를 사용하여 Linux 시스템에서 Windows(SMB)로 디렉토리를 복사하려고 합니다.
[user@host home]$ smbclient -W WORKGROUP --user='admin%admin$123' -c "put /data/directory" "//192.168.1.1/share"
Domain=[mydomain] OS=[Windows Server] Server=[Windows Server]
/data/directory does not exist
[user@host home]$ cd /data/directory
/data/directory
[user@host directory]$ ll
File1
File2
..
문제는 다음과 같습니다.
( )를 사용해도
-N
비밀번호가 승인되지 않습니다.이것도 시도해 보세요
--user=admin%admin$123
명령에서 비밀번호를 제거하고 셸에서 비밀번호를 요청하면 작동했습니다!
참고: Windows와 Linux 간에 디렉터리를 전송하기 위해 Windows에서 컬 및 scp용 SSH 데몬에 대해 읽었습니다. Windows 또는 Linux 소프트웨어 패키지에서 추가 서비스가 필요하지 않은 제안이나 쉬운 방법이 있습니까?
답변1
/data/directory
Windows에서 복사본이 나타나는 것처럼 Linux에서 복사본을 만들 려면 \\192.168.1.1\share\directory
다음 명령을 사용하면 됩니다.
smbclient -W WORKGROUP --user='admin%admin$123' -c "lcd /data;recurse;mput directory" "//192.168.1.1/share"
이유:
- 디렉터리와 그 내용을 복사하려면 여러 파일을 복사하므로 재귀를 활성화
recurse
하고 사용해야 합니다.mput
일반put
명령만 전송됩니다.파일한 번에 선택적으로 대상에서 복제본에 다른 이름을 지정할 수 있습니다. - 처음 사용시에는
lcd
재귀가 제한되므로 복사본이 되지 않고\\192.168.1.1\share\data\directory
그냥\\192.168.1.1\share\directory