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

그러나 Nautilus는 아무런 문제 없이 이름을 구문 분석했습니다.

IP를 구문 분석하여 변수에 저장한 다음 스크립트에서 IP를 직접 사용하는 대신 mount.cifs 및 //$variable을 사용하는 방법이 있습니까?

감사해요

답변1

do-release-upgradeUbuntu 18.04.1 LTS를 사용한 후에도 똑같은 문제가 발생했습니다. 이전까지 행복하게 올랐던 주식들은 모두 이런 추악한 결말로 끝났다

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

nslookup구문 분석이 정확하며 syslog아무것도 strace표시되지 않습니다.

결국 문제는 도메인 이름과 마녀가 mDNS Avahi/Bonjour 데몬을 이전 DNS 조회 .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)"

관련 정보