일반적으로 수동으로 실행하는 몇 가지 작업을 연속적으로 실행하려면 어떻게 해야 합니까?

일반적으로 수동으로 실행하는 몇 가지 작업을 연속적으로 실행하려면 어떻게 해야 합니까?

좋아, 우선 이것이 시스템 관리와 ​​관련된 질문인 이유를 명확히 하기 위해 내 작업 상황을 설명하겠습니다. 저는 주요 통신 회사의 대규모 이메일 서비스(사용자 500만 명)를 운영하는 대규모 IT 솔루션 회사에서 일하고 있습니다. 이 포털의 주요 문제 중 하나는 사용자가 봇넷에 의해 손상되어 하루에 약 100,000통의 스팸 메일을 보내는 데 사용될 수 있다는 것입니다. 포털의 불만 사항 이메일 주소는 분당 1~1일 1000~2000건의 속도로 ARF 보고서를 수신합니다. 이러한 보고서는 모두 수동으로 검토하고, 분석하고, 처리하고 보관해야 합니다. 이 작업에 할당된 인력이 없기 때문에 보고서는 기본적으로 무시되어 포털 이메일 서버가 적시에 모두 블랙리스트에 추가되는 수준까지 스팸이 증가합니다. 이를 자동화하는 프레임워크를 원하는 이유는 자동으로 처리할 합법적인 보고서를 식별하는 동시에 일부 보고서는 작업이 충분히 쉬운 경우 해외 직원에게 위임할 수 있는 사람이 분석해야 하기 때문입니다. 설명하고 실행합니다. 단계를 구현하는 데 도움이 필요하지 않다는 점을 강조해야 합니다. 이들 중 대부분은 1줄 쉘 스크립트와 외부 도구에 액세스하는 몇 가지 스크립트입니다. 다양한 단계를 함께 묶을 도구를 찾고 있습니다.

나는 Gearman, procmail, Jenkins, RequestTracker, Ansible(원하는 경우 Actor 모델을 충족)과 같은 방식으로 뭔가를 생각하고 있었지만 그러한 도구를 사용할 수 없다고 가정합니다. 불만 사항 처리는 두 명 이상의 사람이 이메일 시스템을 실행하는 중대형 이메일 포털에서 문제가 되어야 하기 때문에 적어도 일부 부분을 자동화할 수 있는 몇 가지 도구가 있어야 합니다.

(이 설명이 질문의 관련성을 동기를 부여하는 데 충분하기를 바랍니다. 그렇지 않은 경우 실제로는 무엇인지 알지 못합니다. 아니면 이 질문이 이 SO 포털에서 잘못되었을 수도 있지만 그렇다면 어느 것이 적용 가능합니까?)

어떤 방식으로든 파일을 처리하고, 몇 가지 결정을 내리고, 일부 스크립트를 호출하고, 경우에 따라 사람의 개입이 필요한 일부 작업을 자동화하는 몇 가지 작업을 자동화하고 싶습니다.

내 사용 사례는 다음과 같습니다(모든 작업을 직접 수행하는 경우).

  • 스팸 신고 이메일을 받았는데, 이를 검색할 수 있도록 편집기에서 엽니다.
  • 이메일이 특정 기준에 맞는지 결정합니다(예: 실제로 우리 시스템의 사용자가 보낸 것인지, 5일 이내에 보낸 것인지 등).
  • 메일을 보낸 사용자의 사용자 이름을 추출합니다.
  • 사용자가 이미 비활성화된 경우 고객 데이터베이스를 검색합니다.
  • 아직 활성 상태인 경우 사용자를 비활성화합니다.
  • 동일한 사용자가 보낸 다른 문제가 있는 이메일에 대한 메일 대기열 검색
  • 나중에 분석하기 위해 메일을 보관 장소로 옮깁니다.
  • 고객 서비스 담당자에게 사용자가 비활성화되었음을 알리는 이메일을 보냅니다(아마 하루에 한 번 비활성화된 사용자의 수집 목록과 함께).

이러한 단계의 대부분은 예를 들어 Perl 스크립트를 사용하여 쉽게 자동화할 수 있지만, 특히 조건과 전제 조건이 있고 일부 작업을 함께 수집하여 이미 보류 중인 몇 가지 할 일이 있는 경우 실행할 수 있는 경우 연속 단계를 자동화하는 방법을 모르겠습니다( 예를 들어 10명의 사용자가 발견되었거나 지난 한 시간 동안 작업이 실행되지 않은 경우에만 대기열을 검색합니다.

일부 결정에는 변경된 스크립트를 사용하여 일부 단계를 다시 실행할 수 있도록 도움이 되도록 사람의 개입(예: 자동으로 식별할 수 없는 메일 보기)이나 결정 프로세스 조정이 필요할 수 있습니다.

일종의 작업 스케줄러가 있으면 가능할 거라 생각하는데, 필요한 단계와 조건, 전제 조건을 어떻게 정의해야 하는지 궁금합니다.

(설명된 작업을 수행할 수 있는 도구를 검색하는 것이 아니라 대부분 스크립트로 쉽게 구현되지만 주어진 작업 데이터에 대해 차례로 수행해야 하는 작업 순서를 구성하는 도구라는 점에 유의하시기 바랍니다)

Linux에서 실행하려면 FOSS 솔루션을 선호합니다.

답변1

움직이는 부분이 몇 개 있고 사람의 개입이 필요한 곳도 있기 때문에 확실하게 대답하기는 어렵습니다. 편안하거나 기술적으로 선호되는 스크립팅 언어로 맨 위에서 시작하는 것이 좋습니다. 예를 들어 Windows 상점이라면 PowerShell을 사용하고, 다른 것에 관심이 있다면 다른 것을 사용하세요. 사람이 볼 필요가 없는 논리적 부분을 그룹화하고 스크립트를 작성하세요. 보고서를 생성하거나 어딘가에 데이터베이스를 채우고 프로세스를 천천히 개선하세요. 특정 환경에 맞게 세심하게 작성된 스크립트 외에 사용할 수 있는 단일 유틸리티는 없습니다.

관련 정보