또한 cron은 기록을 잘 유지하지 못합니다. 작업이 지난번에 성공적으로 실행되었는지 아니면 이전에 성공적으로 실행되었는지 어떻게 쉽게 알 수 있습니까? Cron은 문제가 있을 때 사람들에게 이메일을 보낼 수 있지만, 가장 필요할 때는 무인 계정에 남게 될 것입니다.
![완벽한 오픈 소스 작업 스케줄러](/f/00f040625a87bb015a49e4ac92f74fba.jpg)
그렇다면 cron과 작업 스케줄러가 이상적이지 않다면 작업 예약 솔루션에서 정확히 무엇이 필요합니까? 우리는 모든 정기적인 정보를 볼 수 있는 단일 관리 인터페이스를 갖춘 중앙 집중식 분산 솔루션이 필요합니다. 실행해야 할 작업을 분산시켜야 하며, 어느 하나의 기계 작동에만 전적으로 의존하지 않도록 해야 합니다. 예를 들어, 작업이 매시간 실행되어야 하는 경우 단일 관리 인터페이스를 통해 이를 설정하고 모든 시스템에서 실행할 수 있다고 말하고 싶습니다.
분명히 우리는 둘 이상의 시스템에서도 단일 관리 인터페이스에 액세스해야 합니다. 또한 관리 인터페이스에서 작업 기록을 제공하여 작업이 실패했는지 여부와 이유를 알 수 있기를 바랍니다. 마지막으로, 안전하고 안정적이어야 하며 Unix 및 Windows 서버와 호환되어야 합니다. 믿거나 말거나, 이 요구 사항에 맞는 오픈 소스 솔루션이 꽤 많이 있습니다. 모든 솔루션이 우리의 요구 사항을 충족하는 것은 아니지만 그 중 다수는 지속적으로 개선되고 있습니다.
작업 관리를 아웃소싱해 보는 것은 어떨까요?
우리 회사는 이메일 시스템을 Google Apps에, 대부분의 DNS 조회를 OpenDNS에, 전화 시스템을 VoIP 회사에 아웃소싱했는데, 정규 작업 관리도 아웃소싱하면 안 되는 이유는 무엇입니까?
필요한 시간에 자체 웹 서버의 페이지에 액세스하는 외부 서버에서 작동하는 "웹 기반 크론 서비스"를 제공하는 여러 회사가 있습니다. 바라건대, 이들은 자체 시스템의 탄력성 문제를 해결하고 자체 중앙 집중식 관리 인터페이스를 갖게 되기를 바랍니다.
![오르트로](/f/d4caf0182d6e946dceab0e479df8ccd5.jpg)
이러한 서비스는 웹 호스팅을 사용하므로 cron과 같은 기능에 액세스할 수 없는 사람들에게 이상적입니다. 액세스하는 페이지가 로드 밸런서를 통해 제공되어 전체 서버 팜에 분할되도록 하여 서비스에 탄력성을 더 추가할 수 있습니다.
우리는 이러한 서비스 중 하나를 사용하는 것을 고려했지만 사용하지 않은 데에는 두 가지 이유가 있습니다. 첫째, 실행해야 하는 일부 작업은 완료하는 데 꽤 오랜 시간이 걸릴 수 있으며, 웹 연결이 원활하지 않을 수 있습니다. 충분히 오랫동안 열어 둘 수 없으므로 원격 서비스가 실제로 성공 또는 실패를 기록했는지 확신할 수 없습니다. 바르게.
둘째, 내부 비즈니스 프로세스가 외부 통제에 노출된다는 점에서 보안 문제가 있습니다. 우리에게는 큰 문제가 되지 않지만, 예를 들어 금융 기업의 경우에는 유능한 보안 자문가라면 반대 의견을 제시할 것입니다.
Ortro: 웹 기반 크론 대체품
외부 웹 기반 솔루션을 거부하면서 우리가 채택할 수 있는 오픈 소스 시스템이 있는지 궁금했습니다. 우리는 모든 구성이 데이터베이스에 보관되어 있는 웹 인터페이스를 통해 작업이 설정되는 웹 기반 시스템인 Ortro를 발견했습니다.
복제된 데이터베이스 서버에 해당 구성 데이터베이스를 저장하고 여러 시스템에서 해당 웹 인터페이스를 실행할 수 있으므로 이로 인해 여러 가지 문제가 해결됩니다.
기본 스케줄링 프로세스를 구현하기 위해 Ortro는 cron을 사용하여 스스로 작업을 시작합니다. 한 시스템에서 실행되는 cron을 사용하여 작동하게 하기 때문에 작업을 실행할 수 있는 몇 가지 수단이 있어야 합니다. 이는 웹 페이지에 액세스하거나 다음을 통해 원격 셸을 실행하여 수행할 수 있습니다. SSH.