netbios-name을 확인하고 이를 스크립트의 mount.cifs에 전달합니다.

netbios-name을 확인하고 이를 스크립트의 mount.cifs에 전달합니다.

내 Windows 컴퓨터에서 모든 공유를 마운트하는 스크립트가 있습니다. 기본적으로는 다음과 같습니다.

mount.cifs //192.168.0.7/pictures ~/otherpc/pictures -o user=me,domain=mynetwork,password=12345,vers=3.0

..약 10줄 정도요.

문제는 내 네트워크가 DHCP라는 것입니다. 그래서 가끔씩 이 스크립트에서 IP를 변경해야 합니다.

이런 방식으로 작동하는 데 사용되는 스크립트는 다음과 같습니다.

mount.cifs //OTHERPC/pictures ~/otherpc/pictures -o user=me,domain=mynetwork,password=12345,ver=3.0

그러나 어느 시점에서 오류가 발생하기 시작했습니다.

mount error: could not resolve address for OTHERPC: Unknown error

하지만 노틸러스는 문제 없이 이름을 확인합니다.

IP를 확인하고 이를 변수에 저장한 다음 스크립트에서 직접 IP 대신 //$variable과 함께 mount.cifs를 사용하는 방법이 있습니까?

감사합니다

답변1

do-release-upgradeUbuntu 18.04.1 LTS 이후에도 똑같은 문제가 발생했습니다 . 이전에 행복하게 산 주식은 모두 이렇게 추악하게 끝났습니다.

mount error: could not resolve address for server.domain.local: Unknown error

nslookup올바르게 해결되었으며 아무것도 표시되지 syslog않았습니다 strace.

결국 문제는 DNS 조회 전에 mDNS Avahi/Bonjour 데몬을 배치하는 마녀 .local의 변경 사항(아마도 릴리스 업그레이드 중)과 함께 도메인 이었습니다./etc/nsswitch.confmdns4_minimal

주문을 변경한 후 문제가 해결되었습니다.

hosts:          files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns 

에게

hosts:          files dns mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return]

유용한 링크를 모두 기억할 수는 없지만 다음 링크가 확실히 도움이 되었습니다.https://askubuntu.com/a/853284/810573

답변2

IP를 변수에 저장하기 전에 시도해야 할 두 가지 옵션이 있습니다. (게다가 서버에 이미 호스트 이름이 없으면 새 IP를 어떻게 알 수 있습니까?)

  • 유동 IP라면 IP 대신 호스트 이름으로 마운트해 보세요.

    mount.cifs //cifs.server.com/pictures ~/otherpc/pictures -o user=me,domain=mynetwork,password=12345,vers=3.0
    
  • 네트워크가 사용자의 통제하에 있는 경우 cifs 서버의 IP에 대해 DHCP 예약을 수행하십시오.

답변3

당신은 IP를 얻을 수 있습니다nmblookup NAME | head -n 1 | cut -d ' ' -f 1

그것을 변수에 넣으십시오 NAME_IP.NAME_IP="$(nmblookup NAME | head -n 1 | cut -d ' ' -f 1)"

관련 정보