kubernetes cron 작업에서 여러 명령을 실행하는 방법

kubernetes cron 작업에서 여러 명령을 실행하는 방법

K8s 크론 작업에서 여러 명령을 실행하려고 합니다. 그러나 로그에는 첫 번째 작업 출력만 나타납니다. 나는 이것을 가지고있다:

          containers:
          - name: myjob
            image: postgres 
            args:
            - /bin/sh
            - -c
            - PGPASSWORD=$(echo $password) psql -h $host -p 5432 -U $username -d $db -c "\copy (select * from blah limit 1) to blah.txt" ; echo bar.txt ; cat bar.txt;
            - PGPASSWORD=$(echo $password) psql -h $host -p 5432 -U $username -d $db -c "\copy (select * from foo limit 1) to foo.txt" ; date ; echo foo.txt ; cat foo.txt;
          restartPolicy: OnFailure

첫 번째 명령의 출력만 표시됩니다. 여러 명령을 지정하고 하나씩 실행하고 싶습니다.

답변1

-c&&with 또는 연산자 ;다음에 한 줄로 연결하면 됩니다 .

전체 답변 보기여기

답변2

다음을 통해 두 명령을 모두 실행하십시오.포드의 표준 절차.

command: ["/bin/sh","-c"]
args: ["command one; command two && command three"]

하지만,이것이 좋은 생각인지 의심스럽습니다.마지막 희망으로 사용해야 합니다. 컨테이너하나의 프로세스만 실행하도록 설계됨CronJobs와 함께 사용포드 사양.

따라서 다음을 추천할 수 있습니다. 순서가 중요합니다.

  • 작업이 완전히 독립적인 경우 두 개의 별도 CronJob을 실행하세요.
  • CronJob에서 두 개의 별도 컨테이너를 실행합니다. 컨테이너 중 하나가 실패하면 CronJob이 실패합니다.
  • 사용initContainers어떤 질서나 준비를 이루다.

관련 정보