
문맥
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 작업이 이를 수행합니다.
다음의 답변을 사용하여 스크립트를 생성하겠습니다.bash로 디렉토리가 마운트되었는지 확인 [닫기]
생성 중인 bash 스크립트에 마운트하려면 Giles 답변을 사용하여 sudoers 파일을 수정하여 cron 스크립트가 sudo로 실행될 수 있도록 하세요.비밀번호 프롬프트 없이 특정 프로그램을 루트로 실행하는 방법은 무엇입니까?. 이는 설정에 따라 선택적 단계일 수 있습니다.
크론 작업을 설정합니다. 당신은 두 개를 원할 것입니다. 첫 번째는 정기적으로 마운트를 확인하고 그렇지 않은 경우 마운트하는 것입니다. 이렇게 하면 둘 중 하나라도 독립적으로 실패하면 온라인으로 다시 돌아옵니다. 두 번째는 부팅 후 cron을 사용해야 합니다. 이 답변이 도움이 될 것입니다@reboot 후 Crontab 작업 시작 +1분
서버 측에서: NFS 서비스 자체에 스크립트를 연결할 수 있습니다. 완료 후 짧은 잠자기 후에 실행되도록 서비스 스크립트를 편집할 수 있습니다. Bash 스크립트는 다음 형식을 따를 수 있습니다.
sleep 60 && my_mount_script.sh
systemd를 사용하면 기다릴 수 있습니다systemd는 다시 시작/종료하거나 다른 프로세스를 종료하기 전에 명령이 완료될 때까지 기다립니다.nfs.service가 시작되도록 합니다. 교체에는 Before 섹션을 제거한 다음 After 서비스 이름을 nfs.service로 변경하는 것이 포함됩니다.