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
or 연산자 -c
다음 에 한 줄로 연결하세요.&&
;
전체 답변 보기여기
답변2
그냥 두 개의 명령을 실행할 수 있습니다Pod의 표준 절차.
command: ["/bin/sh","-c"]
args: ["command one; command two && command three"]
하지만,나는 그것이 좋은 생각인지 의심스럽다.그리고 그것은 마지막 희망으로 사용되어야 합니다. 컨테이너하나의 프로세스만 실행하도록 설계되었습니다.및 CronJobs 사용포드 사양.
그러므로 나는 다음과 같은 것들을 추천할 수 있다. 주문이 중요합니다.
- 작업이 완전히 독립적인 경우 두 개의 별도 CronJob을 실행합니다.
- CronJob에서 두 개의 별도 컨테이너를 실행합니다. 컨테이너 중 하나가 실패하면 CronJob이 실패합니다.
- 사용
initContainers
전에 어떤 질서나 준비를 이루다.