스크립팅을 허용하도록 NFS에 대한 콜백을 설정하는 방법은 무엇입니까?

스크립팅을 허용하도록 NFS에 대한 콜백을 설정하는 방법은 무엇입니까?

문맥

NAS와 클라이언트 서버라는 두 개의 서버가 있습니다. 둘 다 소형 시스템(Raspberry, OLinuXino)이며 동일한 전원 스트립(전원 버튼이 있음)에 연결되어 있습니다.

클라이언트 서버는 시작 시 NAS에서 NFS 볼륨을 마운트합니다.

문제

멀티탭을 켜면 두 서버가 동시에 시작됩니다. 그러나 클라이언트가 NFS 볼륨을 마운트하려고 시도하는 시점에는 아직 NAS에서 해당 볼륨을 사용할 수 없습니다.

그래서 수동으로 마운트해야 하고 이를 자동화하고 싶습니다.

나는 fstab을 사용하여 Debian Wheezy 배포판에 볼륨을 마운트합니다.

nas.local:/media/myshare  /media/myshare nfs defaults 0 0

어떻게 해결할까요?

그래서 클라이언트에게 "NFS 볼륨을 마운트하면 이제 준비되었습니다!"라고 알리는 ssh 명령을 호출하는 스크립트를 NAS에 추가할 수 있다고 생각했습니다.

ssh -i idFile login@clientServer 'sudo mount -a'NAS 측과 같은 것입니다 .

질문

그런 종류의 스크립트를 넣을 수 있는 가장 좋은 장소는 어디일까요?

NFS 후크? 콜백 같은 거요?

추가 질문

아니면 이 작업을 수행하는 또 다른 더 좋은 방법이 있습니까?

답변1

나는 여러 가지 이유로 실패로부터 보호하려고 노력합니다. 볼륨이 마운트되었는지 확인한 다음 그렇지 않은 경우 마운트하는 cron 작업이 이를 수행합니다.

  1. 다음의 답변을 사용하여 스크립트를 생성하겠습니다.bash로 디렉토리가 마운트되었는지 확인 [닫기]

  2. 생성 중인 bash 스크립트에 마운트하려면 Giles 답변을 사용하여 sudoers 파일을 수정하여 cron 스크립트가 sudo로 실행될 수 있도록 하세요.비밀번호 프롬프트 없이 특정 프로그램을 루트로 실행하는 방법은 무엇입니까?. 이는 설정에 따라 선택적 단계일 수 있습니다.

  3. 크론 작업을 설정합니다. 당신은 두 개를 원할 것입니다. 첫 번째는 정기적으로 마운트를 확인하고 그렇지 않은 경우 마운트하는 것입니다. 이렇게 하면 둘 중 하나라도 독립적으로 실패하면 온라인으로 다시 돌아옵니다. 두 번째는 부팅 후 cron을 사용해야 합니다. 이 답변이 도움이 될 것입니다@reboot 후 Crontab 작업 시작 +1분

서버 측에서: NFS 서비스 자체에 스크립트를 연결할 수 있습니다. 완료 후 짧은 잠자기 후에 실행되도록 서비스 스크립트를 편집할 수 있습니다. Bash 스크립트는 다음 형식을 따를 수 있습니다.

sleep 60 && my_mount_script.sh

systemd를 사용하면 기다릴 수 있습니다systemd는 다시 시작/종료하거나 다른 프로세스를 종료하기 전에 명령이 완료될 때까지 기다립니다.nfs.service가 시작되도록 합니다. 교체에는 Before 섹션을 제거한 다음 After 서비스 이름을 nfs.service로 변경하는 것이 포함됩니다.

관련 정보