서비스에 '\' 문자가 충분하지 않습니다.

서비스에 '\' 문자가 충분하지 않습니다.

픽업 장소:아치 리눅스 위키 항목, 내 생각에 이것은 내 Arch Linux 4.20.6에서 SMB를 통해 Windows 공유 드라이브에 액세스하기 위한 최소한의 설정이라고 생각합니다.

  • sudo pacman -S samba

  • sudo echo "logging = systemd" >> /etc/samba/smb.confsmb서비스에는 이 구성 파일이 필요하기 때문에 그렇지 않으면 다음 오류와 함께 충돌이 발생합니다.

    Job for smb.service failed because the control process exited with error code.
    See "systemctl status smb.service" and "journalctl -xe" for details.
    
  • sudo systemctl start smb

원격 Windows 시스템이 있다고 가정하면 172.16.17.52공유 이름을 나열할 수 있습니다.

smbclient -L 172.16.17.52 -U MyUserName%MyPassword -W OurWindowsDomain

"디스크" 유형 서비스가 있고 OurRemoteDirectory그 공유 이름에 액세스하고 싶습니다(예: 파일 전송).

OurRemoteDirectory공유 드라이브에서 액세스 할 수 있기를 원하여 발행했습니다.

smbclient 172.16.17.52/OurRemoteDirectory -U MyUserName%MyPassword -W OurWindowsDomain

그러나 이로 인해 다음과 같은 오류 메시지가 생성되었습니다.

Unable to initialize messaging context

172.16.17.52: Not enough '\' characters in service

이 오류를 해결하고 OurRemoteDirectory공유 드라이브에 액세스하는 방법은 무엇입니까?

답변1

이 문제를 해결하려면 두 개만 추가하면 됩니다.앞으로슬래시가 앞에 오는 IP 주소:

smbclient //172.16.17.52/OurRemoteDirectory -U MyUserName%MyPassword -W OurWindowsDomain

실망스럽게도 오류 메시지는 추가해야 한다고 제안했습니다.뒤에슬래시를 사용하고 공유 이름을 나열할 때 smbclient -LIP 주소 앞에 슬래시가 필요하지 않습니다.

이제 원격 파일 시스템에 액세스하기 위한 명령줄 인터페이스가 생겼습니다.

중소기업:>

연결을 설정한 후,man smbclientput및 등의 파일 전송에 사용되는 명령에 대해 설명합니다 get.


v7.40부터 포스트스크립트로curl지원하다프로토콜의 경우에도 마찬가지입니다 . 공유 드라이브에서 파일을 전송하거나 공유 드라이브로 파일을 전송하려는 경우 이 samba패키지를 중복하게 만듭니다.smbclient

# Upload local file to shared drive
curl --upload-file /home/me/local_file.txt --user "OurWindowsDomain/MyUserName:MyPassword" smb://172.16.17.52/OurRemoteDirectory/Path/To/Dir/
# Download file from shared drive
curl -o file_from_server.txt --user "OurWindowsDomain/MyUserName:MyPassword" smb://172.16.17.52/OurRemoteDirectory/Path/To/Dir/remote_file.txt

현재 curl원격 디렉터리 생성은 지원되지 않습니다. 즉 , Path/To/Dir/해당 디렉터리가 이미 존재해야 한다는 의미입니다. 이 기능에 대해 간략하게 논의여기.

관련 정보