sample
from airflow import DAG
import pendulum
from airflow.operators.python import PythonOperator
from airflow.providers.sftp.operators.sftp import SFTPHook, SFTPOperator
sftp_hook = SFTPHook(ssh_conn_id=None, username="SYP", remote_host="xxx.xxx.xxx.xxx", cmd_timeout=None, key_file=None)
with DAG(
dag_id='hynix_pluto',
start_date=pendulum.datetime(2024, 7, 1, tz='Asia/Seoul'),
schedule=None,
catchup=False
) as dag:
put_file = SFTPOperator(
task_id="put_file",
sftp_hook = sftp_hook,
local_filepath="/opt/airflow/config/10080.py",
remote_filepath="10080.py",
operation="get",
create_intermediate_dirs=True,
dag=dag
)
put_file
Extra 옵션 설명 :
no_host_key_check : default 'true'
- true 일 경우 (airflow 설치한 서버) 로컬 서버의 'known_hosts' 파일에 원격 서버의 정보가 없을 경우 SFTP 접속 시 자동으로 known_hosts에 원격서버의 정보가 작성된다.
- false 일 경우 로컬 서버의 'known_hosts' 적혀 있지 않은 원격서버의 키 인증 접속은 실패한다. known_hosts 파일의 관리가 필요하다.
단, "no_host_key_check": "true" 일경우 airflow log에 아래 경고 문구가 출력됨으로 업무에 적용 시 참고하길 바란다.
'Python > Airflow' 카테고리의 다른 글
| [airfow] tsv파일을 10개 파일로 나누는 로직 (0) | 2025.02.18 |
|---|---|
| [airflow] csv 파일을 tsv파일로 변환 (0) | 2025.02.18 |
| n개의 수만큼 파일을 분할 하는 파이썬로직 (0) | 2025.02.18 |
| paramiko key처리 (0) | 2025.02.11 |
| airflow_sftp_minio_hdfs_boto3 (0) | 2025.02.09 |
































