[Linux] Redirection (๋ฆฌ๋””๋ ‰์…˜) | ๋ช…๋ น์–ด์˜ ์ž…๋ ฅ์ด๋‚˜ ์ถœ๋ ฅ์„ ํŒŒ์ผ๋กœ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
ยท
๐Ÿ’ป Programming/etc.
๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด์—์„œ ๋ฆฌ๋””๋ ‰์…˜์€ ๋ช…๋ น์˜ ์ž…๋ ฅ์ด๋‚˜ ์ถœ๋ ฅ์„ ํŒŒ์ผ์ด๋‚˜ ๋‹ค๋ฅธ ์žฅ์น˜๋กœ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์•„๋ž˜์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š”ํ•œ ๋ฆฌ๋””๋ ‰์…˜ ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•œ๋‹ค. > (Output Redirection) echo "Hello, Linux" > greeting.txt ๋ช…๋ น์˜ ํ‘œ์ค€ ์ถœ๋ ฅ์„ ํŒŒ์ผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•œ๋‹ค. ์˜ˆ์ œ์—์„œ๋Š” "Hello, Linux"๋ผ๋Š” ํ…์ŠคํŠธ๋ฅผ greeting.txt ํŒŒ์ผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•œ๋‹ค. ๋งŒ์•ฝ greeting.txt ํŒŒ์ผ์ด ์ด๋ฏธ ์กด์žฌํ•˜๋ฉด ๋ฎ์–ด์“ฐ๊ณ , ์—†๋‹ค๋ฉด ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. >> (Append Output) echo "Additional text" >> greeting.txt ๋ช…๋ น์˜ ํ‘œ์ค€ ์ถœ๋ ฅ์„ ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•œ๋‹ค. ์˜ˆ์ œ์—์„œ๋Š” "Additional text"๋ฅผ greeting.txt ํŒŒ์ผ..
[Linux] ๋„คํŠธ์›Œํฌ ํ™œ์šฉ์„ ์œ„ํ•œ ss ๋ช…๋ น์–ด ์„ค๋ช…
ยท
๐Ÿ’ป Programming/etc.
ss ๋ช…๋ น์–ด๋Š” Linux ์‹œ์Šคํ…œ์—์„œ ์†Œ์ผ“(๋„คํŠธ์›Œํฌ ์†Œ์ผ“)๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ์†Œ์ผ“ ํ†ต๊ณ„์™€ ํ˜„์žฌ ์—ด๋ ค ์žˆ๋Š” ์†Œ์ผ“์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ss ๋ช…๋ น์–ด๋Š” netstat ๋ช…๋ น์–ด์™€ ์œ ์‚ฌํ•œ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ๋™์ž‘์„ ์ œ๊ณตํ•œ๋‹ค. ss [options] ์—ฌ๊ธฐ์„œ options๋Š” ss ๋ช…๋ น์–ด์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. -t, --tcp: TCP ์†Œ์ผ“ ์ •๋ณด ํ‘œ์‹œ -u, --udp: UDP ์†Œ์ผ“ ์ •๋ณด ํ‘œ์‹œ -a, --all: ๋ชจ๋“  ์†Œ์ผ“ ์ •๋ณด ํ‘œ์‹œ -n, --numeric: ์ฃผ์†Œ ๋ฐ ํฌํŠธ๋ฅผ ์ˆซ์ž๋กœ ํ‘œ์‹œ -p, --processes: ์†Œ์ผ“์„ ์‚ฌ์šฉ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ์ •๋ณด ํ‘œ์‹œ -l, --listening: ๋ฆฌ์Šค๋‹ ์†Œ์ผ“ ์ •๋ณด ํ‘œ์‹œ -r,..
[Airflow] DB ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์‹œํ•˜๊ณ , ํŠน์ • ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ๊นŒ์ง€ ์ž‘์—…์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ | SqlSensor
ยท
๐Ÿ’ป Programming/Apache Airflow
Apache Airflow์˜ SqlSensor๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์‹œํ•˜๊ณ , ํŠน์ • ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ๊นŒ์ง€ ์ž‘์—…์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ผ์„œ๋Š” ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜์—ฌ ํŠน์ • ๊ฐ’์ด๋‚˜ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์—ˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. SqlSensor ์‚ฌ์šฉ ๋ฐฉ๋ฒ• from airflow.sensors.sql import SqlSensor sql_sensor_task = SqlSensor( task_id='sql_sensor_task', conn_id='your_database_connection_id', # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ID sql='SELECT COUNT(*) FROM your_table WHERE your_condition;', # ๊ฐ์‹œํ•  ์ฟผ๋ฆฌ mode='poke', #..
[Airflow] ์—์–ดํ”Œ๋กœ์šฐ ์„ค์น˜ ๋ฐ ์›น ์ธํ„ฐํŽ˜์ด์Šค ์‹คํ–‰ํ•˜๊ธฐ
ยท
๐Ÿ’ป Programming/Apache Airflow
1. Airflow ์„ค์น˜ pip install apache-airflow 2. Airflow ์„ค์ • cd airflow airflow db init mkdir dags ๋งŒ๋“ค์–ด์ง„ airflow ํด๋”๋กœ ๋“ค์–ด๊ฐ€์„œ db๋ฅผ init ํ•ด์ฃผ๊ณ  dags ํด๋”๋ฅผ ์ƒ์„ฑ airflow users create -u admin -p admin -f Clueless -l Coder -r Admin -e admin@admin.com ๊ด€๋ฆฌ์ž ๊ณ„์ • ์ƒ์„ฑ 3. Airflow ์‹คํ–‰ airflow webserver -p 8080 8080 ํฌํŠธ๋กœ ์—์–ดํ”Œ๋กœ์šฐ ์‹คํ–‰ 'localhost:8080' ๋กœ ์ ‘์† 4. Airflow ์›น ์ธํ„ฐํŽ˜์ด์Šค Apache Airflow ์›น์„œ๋ฒ„๋Š” Airflow ์›Œํฌํ”Œ๋กœ์šฐ์˜ ์‹œ๊ฐํ™”, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜..
[Airflow] Python ํ•จ์ˆ˜ ์‹คํ–‰ํ•˜๊ธฐ | PythonOperator ์‚ฌ์šฉ
ยท
๐Ÿ’ป Programming/Apache Airflow
PythonOperator๋Š” Apache Airflow์—์„œ Python ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Python ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ๊ณ„์‚ฐ, ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜๋Š” PythonOperator๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ์ด๋‹ค. from airflow import DAG from airflow.operators.python_operator import PythonOperator from datetime import datetime, timedelta # DAG ์ •์˜ dag = DAG( 'python_operator_example', description='Example DAG with PythonOperator', schedule_inte..
[Airflow] ์‰˜ ์Šคํฌ๋ฆฝํŠธ, ๋ช…๋ น์–ด ์‹คํ–‰ํ•˜๊ธฐ | BashOperator ์‚ฌ์šฉ
ยท
๐Ÿ’ป Programming/Apache Airflow
BashOperator๋Š” Apache Airflow์—์„œ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ํ”„๋กœ๊ทธ๋žจ, ์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ์€ BashOperator๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋กœ, ๊ฐ„๋‹จํ•œ Bash ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ถœ๋ ฅ์„ ๋กœ๊น…ํ•œ๋‹ค. from airflow import DAG from airflow.operators.bash_operator import BashOperator from datetime import datetime, timedelta # DAG ์ •์˜ dag = DAG( 'bash_operator_example', description='Example DAG with BashOperator', sched..