gpt4 book ai didi

python - 如何在 Airflow 中运行 bash 脚本文件

转载 作者:太空狗 更新时间:2023-10-29 17:18:10 26 4
gpt4 key购买 nike

我有一个 bash 脚本,它创建了一个我想在 Airflow 中运行的文件(如果它不存在),但是当我尝试时它失败了。我该怎么做?

#!/bin/bash
#create_file.sh

file=filename.txt

if [ ! -e "$file" ] ; then
touch "$file"
fi

if [ ! -w "$file" ] ; then
echo cannot write to $file
exit 1
fi

下面是我在 Airflow 中的调用方式:

create_command = """
./scripts/create_file.sh
"""
t1 = BashOperator(
task_id= 'create_file',
bash_command=create_command,
dag=dag
)

lib/python2.7/site-packages/airflow/operators/bash_operator.py", line 83, in execute
raise AirflowException("Bash command failed")
airflow.exceptions.AirflowException: Bash command failed

最佳答案

根据教程,这是可以的:

t2 = BashOperator(
task_id='sleep',
bash_command='sleep 5',
retries=3,
dag=dag)

但是你正在向它传递一个多行命令

create_command = """
./scripts/create_file.sh
"""

应该是

create_command = "./scripts/create_file.sh "

此外,您还必须确保您位于正确的目录中,以避免出现神秘错误。例如,这样做:

create_command = "./scripts/create_file.sh "
if os.path.exists(create_command):
t1 = BashOperator(
task_id= 'create_file',
bash_command=create_command,
dag=dag
)
else:
raise Exception("Cannot locate {}".format(create_command))

关于python - 如何在 Airflow 中运行 bash 脚本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40146934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com