한 달 정도 전에 고용주로부터 구입 한 홈 서버 (HP Proliant ML310 G4)가 있습니다. 서버는 데비안 리눅스를 실행하고 거의 모든 것에 사용합니다. 내 요구가 그렇게 까다 롭지 않기 때문에이 작업을 수행하지 않아도되므로 서버는 주어진 시간에 부하가 거의 발생하지 않습니다. 이 서버에는 mdadm으로 관리되는 2TB RAID1 어레이 (핫 스페어 1 개)가 있으며 Samba를 통해 네트워크를 통한 파일 공유에 사용합니다. 어레이의 일부가 아닌 더 작은 하드 드라이브에서 OS를 실행하고 있습니다.
작은 255 와트 UPS를 통해 서버 전원을 공급받습니다. 전원이 끊기거나 정전으로 인해 갑자기 부정확 한 종료가 한 번 이미 발생한 RAID 어레이를 망칠 수 있기 때문에 이것은 매우 중요합니다.
정전이 발생하면 UPS의 전원이 10-15 분 밖에 걸리지 않을 것으로 예상합니다. 더있을 수도 있지만 자동으로 있다고 가정하고 싶지 않습니다. 몇 분 안에 지속되는 정전을 극복하기에 충분합니다. 그러나 몇 시간 동안 전원이 꺼지면 UPS 전원이 차단되기 전에 서버가 자동으로 종료되어야합니다. 이것은 그러한 상황에서 RAID 무결성이 방해받지 않기를 희망합니다.
이런 종류의 일은 내장 된 센서가 내장되어있어 배터리 전원으로 언제 작동하는지 확인할 수있는 랩탑 b / c에서는 쉽지만이 서버는 (내가 아는 한) 그렇지 않습니다. DSL 모뎀이 라우터와 분리 된 비정상적인 네트워크 설정이 있습니다. 라우터는 UPS에도 있으며, 이로 인해 랩탑을 통해 SSH를 연결하고 정전시 서버를 종료 할 수 있습니다. 불행히도, 내가 할 수있는 경우에만 작동합니다. 개입 여부에 관계없이 항상 작동하는 솔루션이 필요합니다.
DSL 모뎀이 UPS에 없으므로 전원이 공급되지 않으면 다른 모든 장치와 함께 작동하지 않습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있기 때문에 의도적으로 그렇게 설정했습니다. google.com 또는 다른 고 트래픽 / 고 가용성 사이트를 핑하는 스크립트를 작성하려고했습니다. 핑이 성공적으로 완료되면 서버는 계속 실행됩니다. 핑이 실패하면 (모뎀이 꺼져 있기 때문에) 스크립트는 전원이 꺼져 있다고 생각하고 서버가 종료되도록 지시합니다. 스크립트를 Cron에 추가하고 5 분마다 실행하도록했습니다. 그러면 UPS의 전원이 완전히 소진되기 전에 서버를 종료 할 수있는 충분한 시간이 필요합니다.
스크립트를 작성하는 데 어려움을 겪기 전에 필요한 것을 수행하는 더 좋은 방법이 있는지 알고 싶습니다. 도움을 주셔서 감사합니다.