我有一个cronjob如下
apiVersion: batch/v1
kind: CronJob
metadata:
name: foo-bar
namespace: kube-system
spec:
schedule: "*/30 * * * *"
jobTemplate:
spec:
template:
spec:
serviceAccountName: foo-cleaner
containers:
- name: cleanup
image: bitnami/kubectl
imagePullPolicy: IfNotPresent
command:
- "bin/bash"
- -c
- command1;
command2;
command3;
- new_command1;
new_command2;
new_command3;
有时command2
会失败,抛出错误,cronjob执行失败。我希望即使上一个块中的任何命令失败也运行new_command1
1条答案
按热度按时间enyaitl31#
在命令部分,您需要传递以下命令和参数:
命令:["/bin/sh”,"-c”]参数:[“命令1||命令2;命令3和命令4”]
命令["/bin/sh”,“-c”]用于运行shell,并执行以下指令。然后将参数作为命令传递给shell。
在shell脚本中,命令之间用分号分隔,如果第一个命令成功,&&将有条件地运行以下命令:Grep/Pipe(||)如果命令1失败,则运行命令1,然后也运行命令2。
根据上面的命令,它总是运行命令1,如果它失败或给出任何错误,然后它继续运行命令2。如果命令3成功,那么只有它运行命令4。在您的Yaml中进行相应的更改,并尝试。
有关cron作业,请参阅本文档。