Samba와 공유하기 전에 서버가 항상 부팅할 수 있고 하드 드라이브가 마운트되어 있는지 확인하십시오.

Samba와 공유하기 전에 서버가 항상 부팅할 수 있고 하드 드라이브가 마운트되어 있는지 확인하십시오.

나는 Samba와 공유하는 각각 단일 파티션이 있는 2개의 2TB 하드 드라이브(부팅/시스템 드라이브 아님)를 가지고 있습니다. 마운트 지점은 /mnt/drive01및 에 있습니다 /mnt/drive02.

이는 backup1 및 backup2라는 두 개의 Samba 공유 경로이기도 합니다. 이러한 공유가 시작되자마자 네트워크에 있는 다른 시스템의 (많은) 데이터로 채워지기 시작합니다(일부 시스템은 backup1에 쓰고 다른 시스템은 backup2에 쓰지만 둘 다에는 쓰지 않습니다).

모든 것이 계획대로 작동하며 Samba에는 문제가 없습니다. 이 서버(원격 위치)는 정전 등의 경우 자동 재부팅되도록 구성되어 있습니다. 또한 서버가 항상 적어도 부팅할 수 있도록 시스템/부팅 드라이브로 RAID1에 두 개의 드라이브가 있습니다.

문제는 시스템이 제대로 부팅되지만 어떤 이유로 2TB 하드 드라이브 중 하나(또는 둘 다)를 마운트할 수 없는 경우입니다. 삼바는 공유를 시작 /mnt/drive01하고 /mnt/drive02대용량 드라이브는 마운트되지 않아 실제로 모든 데이터가 결국 시스템 드라이브에 쌓이고 가득 차서 시스템을 사용할 수 없게 만들거나 SSH를 통해 원격으로 액세스할 수 없게 됩니다.

따라서 2개의 2TB 드라이브 파티션을 에 입력하는 것은 좋은 생각이 아니라고 생각합니다 /etc/fstab. 예를 들어 데이터 드라이브 중 하나가 연결이 끊어진 경우 부팅 시 몇 가지 문제를 발견했기 때문입니다. 서버가 원격 위치에 있고 "드라이브가 준비되지 않았습니다. 계속 기다리십시오. 마운트를 건너뛰려면 S를 누르고, 수동으로 하려면 M을 누르십시오..."와 같은 화면 메시지를 수정하기 위해 운영자의 개입에 의존할 수 없기 때문에 이는 다시 한 번 중요합니다.

그래서 부팅 후 1분 후에 데이터 드라이브 마운트를 시도하는 작은 스크립트가 있는데, 이로 인해 fstab 부분이 수정됩니다. 이제 삼바(Samba)로 가세요.

내가 원하는 것은 일정 시간이 지난 후(문제 없음) Samba를 시작하고 두 공유를 "동적으로" 활성화하거나 비활성화하는 것입니다. 예를 들어 두 번째 데이터 드라이브에 오류가 발생하면 내 스크립트는 첫 번째 데이터 디스크만 마운트할 수 있고 Samba는 백업 1 공유(2TB 디스크 드라이브에 데이터가 기록됨)만 광고합니다. 다른 공유(backup2, 에 매핑됨 /mnt/drive02)는 광고/비활성화되지 않지만 적어도 하나의 공유가 실행 중입니다(그리고 내 컴퓨터 중 일부는 여기에 데이터를 부을 수 있습니다).

물론 쉬운 방법은 두 데이터 드라이브가 모두 마운트된 경우에만 삼바를 시작하는 것이지만 이는 전부 아니면 전무 솔루션입니다.

어떤 아이디어가 있나요?

답변1

두 가지 옵션이 있습니다. Samba와 다른 공유가 없는 경우 upstart 또는 systemd를 사용하여 둘 다 마운트되면 Samba를 시작하고 둘 다 마운트 해제되면 중지할 수 있습니다. systemd를 사용하면 다음이 필요합니다.Requires=그리고 신생으로start on mounted /dev/something. 다른 방법은 시작 스크립트에서 삼바를 제거하고 스크립트를 사용하여 시작하는 것입니다. 이러한 옵션은 이미 수행한 작업에 따라 다릅니다.

관련 정보