nfs를 사용할 수 없을 때 Autofs는 로컬 디렉토리를 마운트합니다.

nfs를 사용할 수 없을 때 Autofs는 로컬 디렉토리를 마운트합니다.

가능한 경우 내 홈 디렉토리가 NFS 마운트가 되고 그렇지 않은 경우 로컬 디렉토리가 되기를 원합니다. 일반 네트워크에서 벗어나고 싶은 노트북을 상상해 보세요. 제가 오늘 가지고 있는 것은 집에 NFS 공유를 마운트하는 자동 마운트 맵입니다. 나는 스택 교환을 조사하고 있었고 coda를 제안했습니다.컴퓨터에 nfs 마운트의 로컬 복사본을 유지합니다.그러나 이것은 매우 오래된 프로젝트이고 적절한 저장소에서 볼 수 없기 때문에 이것이 잘 작동하지 않을 수도 있다고 믿게 됩니다.

내가 하려는 것은 다음과 같이 nfs 홈 디렉터리를 /nethome에 자동 마운트하는 것입니다.

/etc/auto.nethome * -fstype=nfs4,rw,sec=sys,soft,rsize=8192,wsize=8192,no_root_squash h2gt2g.deepthot.aa:/volume1/homes/&

mkdir -p /nethome/me

/etc/fstab:  /home/me /nethome/me none defaults,bind 0,0

불행히도 이것은 전혀 작동하지 않습니다. 결국 바인딩되거나 전혀 작동하지 않습니다. 나는 그렇게 간단한 일을 할 수 없을 것 같다.

다른 사람이 이와 같은 일을 성공적으로 수행한 적이 있습니까? 이게 사람이 하는 일인 것 같습니다.

그런데 저는 약 20년 동안 모든 컴퓨터/VM에 nfs 홈 디렉터리를 자동 마운트해 왔습니다. 방금 설명한 것과 유사한 작업을 수행하고 싶었지만 할 수 없었습니다.

답변1

가장 간단한 해결책은 노트북에 "온라인 집"과 "실제 집"을 두 개의 별도 개체로 두는 것입니다. 그런 다음 .profile(실제 집에 위치)에 다음 스크립트를 입력하세요.

if [ -e /nethome/me/.profile ]; then
    HOME=/nethome/me/
    cd $HOME
    . ./.profile
    exec bash
fi

기본적으로, 귀하의 지역에 "실제" 주택이 여전히 있지만 네트워크를 사용할 수 있는 경우 해당 주택이 귀하의 새 집으로 사용됩니다. 이렇게 하면 서로 다른 네트워크에 대해 여러 개의 집을 만들 수도 있습니다.

그러나 나는 여전히 $HOME을 사용하지 않고 네트워크와 관련된(아님) 폴더에 대한 별칭 집합을 직접 만들고 해당 특정 네트워크에서 실제 디렉터리가 있는 위치를 기반으로 해당 별칭을 설정하는 것이 좋습니다. 그것은 다음과 같습니다:

if [ -d /mynas/projects/projectA ]; then
   projectA=/mynas/projects/projectA
elif [ -d /company/group/somelegacygarbage/projectA ]; then
   projectA=/company/group/somelegacygarbage/projectA
else 
   projectA=/home/me/projects/projectA
fi

나중에 입력하는 것이 더 쉬울 것이며 cd $projectA즉시 가장 관련성이 높은 디렉토리로 이동하게 될 것입니다.

답변2

나는 네트워크 홈 디렉토리(같은 대학의 Coda와 유사한 AFS)가 있는 여러 컴퓨터를 관리하고 있으며 sssd의 제한으로 인해 자동 마운트 시스템을 사용하여 홈 디렉토리를 네트워크 경로에 동적으로 마운트합니다.또는네트워크를 사용할 수 없는 경우 로컬 디렉터리입니다. (실제로는 더 복잡하며 cifs automount dir도 시도했습니다)

기본적으로 자동 마운트에서는 직접 마운트 정의 대신 프로그램을 사용할 수 있습니다. 예를 들어:

   /home  program:/etc/auto.home

그러면 이 프로그램(/etc/auto.home)의 출력은 질문의 NFS 마운트 정의와 유사해야 합니다.또는결정한 셸 논리에 따라 로컬 디렉터리에 마운트를 바인딩합니다.

관련 정보