๊ณผ์ œ ๋‚ด์šฉ

  • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์ด ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž‘์„ฑ
  • ์„ค์น˜ํ•  ๋ฒ„์ „์„ ๋ณ€์ˆ˜๋กœ ๋ฐ›๊ธฐ
sh install_mysql 8.0.32

 

๊ฐœ๋ฐœํ™˜๊ฒฝ

  • NHN Cloud
  • CentOS 7.9

 

ํ”„๋กœ์„ธ์Šค

 

์ฝ”๋“œ

  • ๋ฒ„์ „์„ ์ž…๋ ฅ๋ฐ›์ง€ ์•Š์•˜์„ ๋•Œ

 

  • ๋ฒ„์ „์„ ์ž…๋ ฅ๋ฐ›์•˜์„ ๋•Œ
    • ์ž…๋ ฅํ•œ ๋ฒ„์ „์„ ์„ค์น˜ํ•  ๊ฒƒ์ธ์ง€ ๋ฌป๊ธฐ

 

  • OS์™€ ์•„ํ‚คํ…์ฒ˜ ๋ฒ„์ „ ํ™•์ธ

 

  • MySQL์ด ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
    • ์ด๋ฏธ ์„ค์น˜๋œ ๊ฒฝ์šฐ ์‚ญ์ œํ•  ๊ฒƒ์ธ์ง€ ๋ฌป๊ธฐ

 

  • wget์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ

 

  • MySQL ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜

 

  • my.cnf ์„ค์ •

 

  • data, logs ํŒŒ์ผ ๋งŒ๋“ค๊ณ  ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

 

  • ์ดˆ๊ธฐํ™” ๋ฐ ์‹œ์ž‘

 

  • MySQL ์‹คํ–‰

 

๊ฒฐ๊ณผ

 

ํ”ผ๋“œ๋ฐฑ

  • ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ๋‹ค.
    • ์„ค์น˜ํ•  ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํฌํŠธ๋ฒˆํ˜ธ๋„ ๋ฐ›๊ธฐ
    • ์„ค์น˜๋  ๋””๋ ‰ํ† ๋ฆฌ๋„ ๋ถ„๋ฆฌํ•ด์•ผ ํ•จ
  • OS ubuntu ๊นŒ์ง€๋Š” ๋ถ„๊ธฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ
  • wget --spider ํ†ตํ•ด์„œ url ์ •ํ•ฉ์„ฑ ํ™•์ธํ•˜๊ธฐ
  • (MySQL) ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์ด ์ ‘์†ํ•˜๊ธฐ
    • --initialize-insecure ์‚ฌ์šฉํ•˜๊ธฐ
    • --skip-grant-tables ์˜ต์…˜์€ ๋ณด์•ˆ์ƒ ์•ˆ์ „ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ฌ์šฉX (system ์Šคํ‚ค๋งˆ์— ์žˆ๋Š” grant tabels๋ฅผ ์ฝ์ง€ ์•Š๊ณ , ๊ถŒํ•œ ์‹œ์Šคํ…œ์— ์—†์ด ์‹œ์ž‘)
  • (redis) ์žฌ๊ธฐ๋™ ์ดํ›„์—๋„ ์„ค์ •ํŒŒ์ผ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ง€์†๋˜๋„๋ก ํ•˜๊ธฐ

 

 

โœ… ๊ณต์‹๋ฌธ์„œ

https://helpdesk.dooray.com/share/pages/9wWo-xwiR66BO5LGshgVTg/2939987647631384419

 

๐Ÿ“ ๋ชฉ์ฐจ

  1. ๊ณผ์ œ ๋‚ด์šฉ
  2. ํ”„๋กœ์„ธ์Šค
  3. ์ฃผ์š” ๋ช…๋ น์–ด
  4. ์ฝ”๋“œ
  5. ๊ฒฐ๊ณผ

 

๊ณผ์ œ ๋‚ด์šฉ

  • ํŠน์ • ๋‘๋ ˆ์ด ํ”„๋กœ์ ํŠธ์— ์ผ์ผ ์Šคํฌ๋Ÿผ ํƒœ์Šคํฌ๋ฅผ ์ž๋™ ๋“ฑ๋กํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
    • ์ผ์ผ ํƒœ์Šคํฌ ์ƒ์„ฑ: [2023/01/10 (ํ™”) ์ผ์ผ ์Šคํฌ๋Ÿผ] ๋“ฑ ์ผ์ผ ์Šคํฌ๋Ÿผ ํƒœ์Šคํฌ๋ฅผ 1์ฃผ์ผ ์ „ ๋งค์ผ ์ž๋™ ์ƒ์„ฑ
    • ์ฃผ๊ฐ„ ํƒœ์Šคํฌ ์ƒ์„ฑ: 2023/01/10(ํ™”) ๋ฐ์ดํ„ฐ์šด์˜ํŒ€ ์ฃผ๊ฐ„ ์—…๋ฌด ํšŒ์˜ ์˜ ์ฃผ๊ฐ„ ํšŒ์˜ ํƒœ์Šคํฌ๋Š” ๋‹ค์Œ์ฃผ ํšŒ์˜ ํƒœ์Šคํฌ ์ž๋™ ์ƒ์„ฑ

 

ํ”„๋กœ์„ธ์Šค

๊ฐœ๋ฐœํ™˜๊ฒฝ

  • macOS Monterey
  • intel 7i / x86_64

 

๋„์‹ํ™”

  • ์ƒ์œ„ ์—…๋ฌด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
    • ์—†์œผ๋ฉด ์—ฐ ๋˜๋Š” ์›” ๋‹จ์œ„์˜ ์ƒ์œ„ ์—…๋ฌด ์ƒ์„ฑ
  • ํ•ด๋‹น ์ผ์— ์—…๋ฌด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ (์ˆ˜๋™์œผ๋กœ ๋“ฑ๋ก๋œ ๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธ ์ฐจ์›)
    • ์—†์œผ๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋“ฑ๋ก๋œ ์ผ์ผ ์—…๋ฌด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
      • ์žˆ๋‹ค๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ ์ผ์ผ ์—…๋ฌด ์ƒํƒœ-์™„๋ฃŒ/๋งŒ๊ธฐ์ผ-๋ฏธ์ • ์„ค์ •
  • ํ•˜์œ„ ์—…๋ฌด ์ƒ์„ฑ
  • ์  ํ‚จ์Šค์—์„œ ์„ค์ •ํ•œ ๋‘๋ ˆ์ด ๋Œ€ํ™”๋ฐฉ์— ๋ฉ”์‹œ์ง€ ์•Œ๋ฆผ

 

์„ธ๋ถ€์‚ฌํ•ญ

  • ์ƒ์œ„ ์—…๋ฌด์— ํ•˜์œ„ ์—…๋ฌด๋กœ ๋“ฑ๋ก๋จ
  • ํƒœ๊ทธ : ์ง€์ •ํ•œ ํƒœ๊ทธ๋ช…
  • ๋‚ ์งœ : ์ƒ์„ฑ๋  ๋•Œ ์ผ์ฃผ์ผ ํ›„ ๋‚ ์งœ๋กœ ์ž๋™ ์ƒ์„ฑ๋จ
  • ๋‹ด๋‹น์ž : ๋ณธ์ธ (๊ทธ๋ฃน์œผ๋กœ๋„ ๊ฐ€๋Šฅ)
  • ์‹คํ–‰ : ์  ํ‚จ์Šค ์‚ฌ์šฉ
    • ์ผ์ผ ์Šคํฌ๋Ÿผ : ํ‰์ผ 9์‹œ๋งˆ๋‹ค ๋นŒ๋“œ
    • ์ฃผ๊ฐ„์—…๋ฌดํšŒ์˜ : ํ™”์š”์ผ 9์‹œ๋งˆ๋‹ค ๋นŒ๋“œ

 

์ฃผ์š” ๋ช…๋ น์–ด

curl

  • ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด URL๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์„œ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด
  • Shell์—์„œ REST API(http) ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
  • ์ง€์›ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ : http / https / ftp / ldap / scp / telnet / smtp / pop3 ๋“ฑ
  • Linux/mac OS : ๊ธฐ๋ณธ ํƒ‘์žฌ
  • ์‚ฌ์šฉํ•œ ์˜ต์…˜
    • -d : http POST ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ
    • -s : ์ง„ํ–‰ ๋‚ด์šฉ์ด๋‚˜ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ ์•ˆ๋˜๊ฒŒ
    • -X : ์š”์ฒญ์‹œ ์‚ฌ์šฉํ•  ๋ฉ”์†Œ๋“œ ์ข…๋ฅ˜
    • -H : ์ „์†กํ•  ํ—ค๋” ์ง€์ •



date

  • ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ๋‹ค์–‘ํ•œ ํฌ๋งท์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ , ๊ณ„์‚ฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด
  • macOS์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ
    • macOS๋Š” date ๋ช…๋ น์–ด์— -d ์˜ต์…˜์ด ์ ์šฉ๋˜์ง€ ์•Š์Œ
    • ํฌ๋งท : -v[-(๊ณผ๊ฑฐ)/+(๋ฏธ๋ž˜)][์ผ์ˆ˜]d
# ์˜ค๋Š˜๋กœ๋ถ€ํ„ฐ 7์ผ ๋’ค yyyy/mm/dd ํ˜•์‹
date -v+7d +%Y/%m/%d

# ์˜ค๋Š˜๋กœ๋ถ€ํ„ฐ 7์ผ ๋’ค ์š”์ผ ํ˜•์‹
date -v+7d +%A  # ์ˆ˜์š”์ผ
date -v+7d +%a  # ์ˆ˜



jq

  • Shell์—์„œ JSON์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ์‚ฌ์šฉํ•œ ์˜ต์…˜
    • -r : ๊ฒฐ๊ณผ๊ฐ’์— ๋”ฐ์˜ดํ‘œ ์ œ๊ฑฐํ•ด์„œ raw ๊ฐ’ ๋ฐ›๊ธฐ
  • ์„ค์น˜
# macOS
brew install jq



crontab

  • Linux์—์„œ ์ผ์ • ์ฃผ๊ธฐ๋‚˜ ํŠน์ • ์‹œ๊ฐ„์— ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด (์Šค์ผ€์ค„๋Ÿฌ)
# crontab ์ž‘์„ฑ
crontab -e

# crontab ์ž‘์—… ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ
crontab -l

# crontab ๋ชจ๋“  ์ž‘์—… ์‚ญ์ œ
crontab -r

# ๋งค์ฃผ ์ผ์š”์ผ 23์‹œ 55๋ถ„์— ์ˆ˜ํ–‰
55 23 * * 0 ํŒŒ์ผ ์ €์žฅ๋œ ์œ„์น˜ >> ๋กœ๊ทธ ์ €์žฅํ•  ์œ„์น˜

# ๋งค์ฃผ ์›”-๊ธˆ์š”์ผ 23์‹œ 55-59๋ถ„์— ์ˆ˜ํ–‰
55-59 23 * * 1-5 ํŒŒ์ผ ์ €์žฅ๋œ ์œ„์น˜ >> ๋กœ๊ทธ ์ €์žฅํ•  ์œ„์น˜

 

์ฝ”๋“œ

  • ๋ณ€์ˆ˜

 

  • ๋กœ์ง
  • ์ƒ์œ„ ์—…๋ฌด ์œ ๋ฌด ํ™•์ธ
    • ์—†์œผ๋ฉด ์ƒ์œ„ ์—…๋ฌด ์ƒ์„ฑ

 

  • ํ•˜์œ„ ์—…๋ฌด ์œ ๋ฌด ํ™•์ธ
    • ์žˆ์œผ๋ฉด ์ข…๋ฃŒ

 

  • ์—†์œผ๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ ์ผ์ผ ์—…๋ฌด ํ™•์ธ ํ›„ ์ƒํƒœ-์™„๋ฃŒ ๋ฐ ๋งŒ๊ธฐ์ผ-๋ฏธ์ • ์„ค์ •

 

  • ํ•˜์œ„ ์—…๋ฌด ์ƒ์„ฑ

 

๊ฒฐ๊ณผ

  • ์„ฑ๊ณต ํ™”๋ฉด (์—ฐ ๋‹จ์œ„)
  • ์„ฑ๊ณต ํ™”๋ฉด (์›” ๋‹จ์œ„)

 

  • ์ด๋ฏธ ํ•ด๋‹น ์ผ์˜ ์—…๋ฌด๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ


๊ณ ๋ คํ•œ ์‚ฌํ•ญ

  1. ์ƒ์œ„ ์—…๋ฌด๊ฐ€ ์—ฐ ๋˜๋Š” ์›” ๋‹จ์œ„๋ฅผ ์„ ํƒํ•˜์—ฌ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„
    → ์—ฐ๋„๋‚˜ ์›”์ด ๋ฐ”๋€Œ๋”๋ผ๋„ ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์ƒ์œ„ ์—…๋ฌด๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์ˆ˜์ž‘์—…์ด ํ•„์š”ํ•˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„
  2. ๋งŒ๊ธฐ์ผ(์—†์Œ/๋ฏธ์ •/์žˆ์Œ) ์„ค์ •
    → ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ์—…๋ฌด๋ฅผ ์—…๋ฌด์ƒํƒœ๋ฅผ ์™„๋ฃŒ๋กœ ๋ฐ”๊ฟ€ ๊ฒฝ์šฐ : ๋งŒ๊ธฐ์ผ์ด ์„ค์ •๋˜์–ด ์บ˜๋ฆฐ๋”์— ๋‚˜์˜ค๊ฒŒ ๋จ
    → ์—…๋ฌด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ• ๋•Œ dueDateFlag: false ๋กœ ํ•  ๊ฒฝ์šฐ, ๋งŒ๊ธฐ์ผ์ด ์—†์Œ ์ƒํƒœ๊ฐ€ ๋จ
    → ํŠน์ด์‚ฌํ•ญ 1 : ์—…๋ฌด์ƒํƒœ(ํ• ์ผ/์ง„ํ–‰์ค‘/์™„๋ฃŒ) ์†์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
    → ํŠน์ด์‚ฌํ•ญ 2 : dueDateFlag๋ฅผ true๋กœ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ๊ถŒ์žฅ
  3. ํฌ๋ก ํƒญ๋งŒ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ, ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•œ ๊ฒฝ์šฐ์— ์žฌ์‹คํ–‰ ๋“ฑ์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ์‰ฝ์ง€ ์•Š์Œ
    → ์  ํ‚จ์Šค์—์„œ ๋‘๋ ˆ์ด์™€ ์—ฐ๋™๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•ด ๋นŒ๋“œ ์‹คํŒจ์‹œ ์žฌ์‹œ๋„ ํšŸ์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋‹ค์‹œ ๋นŒ๋“œ๋˜๋„๋ก ์„ค์ •
  4. ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฅผ ๋‘๋ ˆ์ด ๋ฉ”์‹œ์ง€ ์•Œ๋ฆผ
    → ๋‘๋ ˆ์ด ๋Œ€ํ™”๋ฐฉ ๋‹จ์œ„๋กœ ๋ฉ”์‹œ์ง€ ๊ฐ€๋Šฅ

 

๋ณด์™„์ด ํ•„์š”ํ•œ ์‚ฌํ•ญ

  1. ์ƒ์œ„ ์—…๋ฌด ์ƒ์„ฑ์‹œ ํ•˜์œ„ ์—…๋ฌด๊ฐ€ ๋ฐ”๋กœ ๋“ฑ๋ก๋˜์ง€ ์•Š๋Š” ์ 
    → ๋™์‹œ์„ฑ ๋ฌธ์ œ์ธ๊ฐ€ ์‹ถ์–ด wait๋ฅผ ๊ฑธ์–ด๋ดค๋Š”๋ฐ ๋˜์ง€ ์•Š์•„์„œ ์ข€ ๋” ํ™•์ธ ํ•„์š”
  2. ์ƒ์œ„ ์—…๋ฌด๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ํƒœ๊ทธ๋„ ํ•จ๊ป˜ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๋„๋ก (ํ˜„์žฌ๋Š” ํƒœ๊ทธ๊ฐ€ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •๋˜์–ด ์žˆ์Œ)
    → 'application/x-www-form-urlencoded' not supported ์—๋Ÿฌ ํ™•์ธ ํ•„์š”
  3. ์  ํ‚จ์Šค๋ด‡ ๋ฉ”์‹œ์ง€ ๋‚ด์šฉ ์„ค์ •์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ
    → ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ์ข€ ๋” ํ™•์ธ ํ•„์š”

โœ… ๊ณต์‹๋ฌธ์„œ

https://helpdesk.dooray.com/share/pages/9wWo-xwiR66BO5LGshgVTg/2939987647631384419

 

๋ช…๋ น์–ด

curl

  • ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด URL๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์„œ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด
  • Shell์—์„œ REST API(http) ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
  • ์ง€์›ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ : http / https / ftp / ldap / scp / telnet / smtp / pop3 ๋“ฑ
  • Linux/mac OS : ๊ธฐ๋ณธ ํƒ‘์žฌ
  • ์‚ฌ์šฉํ•œ ์˜ต์…˜
    • -d : http POST ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ
    • -s : ์ง„ํ–‰ ๋‚ด์šฉ์ด๋‚˜ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ ์•ˆ๋˜๊ฒŒ
    • -X : ์š”์ฒญ์‹œ ์‚ฌ์šฉํ•  ๋ฉ”์†Œ๋“œ ์ข…๋ฅ˜
    • -H : ์ „์†กํ•  ํ—ค๋” ์ง€์ •

 

date

  • ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ๋‹ค์–‘ํ•œ ํฌ๋งท์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ , ๊ณ„์‚ฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด
  • macOS์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ
    • macOS๋Š” date ๋ช…๋ น์–ด์— -d ์˜ต์…˜์ด ์ ์šฉ๋˜์ง€ ์•Š์Œ
    • ํฌ๋งท : -v[-(๊ณผ๊ฑฐ)/+(๋ฏธ๋ž˜)][์ผ์ˆ˜]d
# ์˜ค๋Š˜๋กœ๋ถ€ํ„ฐ 7์ผ ๋’ค yyyy/mm/dd ํ˜•์‹
date -v+7d +%Y/%m/%d

# ์˜ค๋Š˜๋กœ๋ถ€ํ„ฐ 7์ผ ๋’ค ์š”์ผ ํ˜•์‹
date -v+7d +%A  # ์ˆ˜์š”์ผ
date -v+7d +%a  # ์ˆ˜

 

jq

  • Shell์—์„œ JSON์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ์‚ฌ์šฉํ•œ ์˜ต์…˜
    • -r : ๊ฒฐ๊ณผ๊ฐ’์— ๋”ฐ์˜ดํ‘œ ์ œ๊ฑฐํ•ด์„œ raw ๊ฐ’ ๋ฐ›๊ธฐ
  • ์„ค์น˜
# macOS
brew install jq

 

crontab

  • Linux์—์„œ ์ผ์ • ์ฃผ๊ธฐ๋‚˜ ํŠน์ • ์‹œ๊ฐ„์— ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด (์Šค์ผ€์ค„๋Ÿฌ)
# crontab ์ž‘์„ฑ
crontab -e

# crontab ์ž‘์—… ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ
crontab -l

# crontab ๋ชจ๋“  ์ž‘์—… ์‚ญ์ œ
crontab -r
# ๋งค์ฃผ ์ผ์š”์ผ 23์‹œ 55๋ถ„์— ์ˆ˜ํ–‰
55 23 * * 0 ํŒŒ์ผ ์ €์žฅ๋œ ์œ„์น˜ >> ๋กœ๊ทธ ์ €์žฅํ•  ์œ„์น˜

# ๋งค์ฃผ ์›”-๊ธˆ์š”์ผ 23์‹œ 55-59๋ถ„์— ์ˆ˜ํ–‰
55-59 23 * * 1-5 ํŒŒ์ผ ์ €์žฅ๋œ ์œ„์น˜ >> ๋กœ๊ทธ ์ €์žฅํ•  ์œ„์น˜

 

๊ฐœ๋ฐœํ™˜๊ฒฝ

  • macOS Big Sur
  • intel 7i / x86_64

 

์‹œ๋‚˜๋ฆฌ์˜ค

  1. ์š”์ฒญํ•œ ์ •๋ณด์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
  2. ํ•ด๋‹น ์ผ์— ์—…๋ฌด๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ํ™•์ธ
    1. ์žˆ์œผ๋ฉด ์ข…๋ฃŒ
    2. ์—†์œผ๋ฉด
      1. ๊ฐ€์žฅ ์ตœ๊ทผ ์ผ์ผ ์—…๋ฌด ์ƒํƒœ-์™„๋ฃŒ/๋งŒ๊ธฐ์ผ-๋ฏธ์ • ์„ค์ •
      2. ์ƒˆ ์—…๋ฌด ์ƒ์„ฑ

 

  • ์ƒ์œ„ ์—…๋ฌด(์ผ์ผ ์Šคํฌ๋Ÿผ ๋˜๋Š” ์ฃผ๊ฐ„์—…๋ฌดํšŒ์˜)์— ํ•˜์œ„ ์—…๋ฌด๋กœ ์ถ”๊ฐ€๋จ
  • ํƒœ๊ทธ : ์ƒ์œ„ ์—…๋ฌด
  • ๋‚ ์งœ : ์ƒ์„ฑ๋  ๋•Œ ์ผ์ฃผ์ผ ํ›„ ๋‚ ์งœ๋กœ ์ž๋™ ์ƒ์„ฑ๋จ
  • ๋“ฑ๋ก์ž/๋‹ด๋‹น์ž : ๋ณธ์ธ (๊ทธ๋ฃน์œผ๋กœ๋„ ๊ฐ€๋Šฅ)

 

์ฝ”๋“œ

์ผ์ผ ์Šคํฌ๋Ÿผ

  • ๋ณ€์ˆ˜

 

  • ์š”์ฒญํ•œ ์ •๋ณด์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ

 

 

  • ํ•ด๋‹น ์ผ์— ์—…๋ฌด๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ํ™•์ธ
    • ์žˆ์œผ๋ฉด ์ข…๋ฃŒ

 

  • ์—†์œผ๋ฉด
    • ๊ฐ€์žฅ ์ตœ๊ทผ ์ผ์ผ ์—…๋ฌด ์ƒํƒœ-์™„๋ฃŒ/๋งŒ๊ธฐ์ผ-๋ฏธ์ • ์„ค์ •

 

  • ์ƒˆ ์—…๋ฌด ์ƒ์„ฑ

 

 

 

์ฃผ๊ฐ„ ์—…๋ฌด ํšŒ์˜

  • ๋ณ€์ˆ˜

 

  • ์š”์ฒญํ•œ ์ •๋ณด์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ

 

  • ํ•ด๋‹น ์ผ์— ์—…๋ฌด๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ํ™•์ธ
    • ์žˆ์œผ๋ฉด ์ข…๋ฃŒ

 

  • ์—†์œผ๋ฉด
    • ๊ฐ€์žฅ ์ตœ๊ทผ ์ผ์ผ ์—…๋ฌด ์ƒํƒœ-์™„๋ฃŒ/๋งŒ๊ธฐ์ผ-๋ฏธ์ • ์„ค์ •

 

  • ์ƒˆ ์—…๋ฌด ์ƒ์„ฑ

 

 

๊ฒฐ๊ณผ

์ผ์ผ ์Šคํฌ๋Ÿผ

  • ์š”์ฒญ๋œ ์ •๋ณด๊ฐ€ ์ž˜๋ชป ๋˜์—ˆ์„ ๊ฒฝ์šฐ

 

  • ์ด๋ฏธ ํ•ด๋‹น ์ผ์˜ ์—…๋ฌด๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ

 

  • ์ •์ƒ์ ์œผ๋กœ ์—…๋ฌด๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ

 

์ฃผ๊ฐ„ ์—…๋ฌด ํšŒ์˜

  • ์š”์ฒญ๋œ ์ •๋ณด๊ฐ€ ์ž˜๋ชป ๋˜์—ˆ์„ ๊ฒฝ์šฐ

 

  • ์ด๋ฏธ ํ•ด๋‹น ์ผ์˜ ์—…๋ฌด๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ

 

  • ์ •์ƒ์ ์œผ๋กœ ์—…๋ฌด๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ

 

ํฌ๋ก ํƒญ

  • ์ผ์ผ ์Šคํฌ๋Ÿผ : ํ‰์ผ 9์‹œ ์‹คํ–‰
  • ์ฃผ๊ฐ„ ์—…๋ฌด ํšŒ์˜ : ํ™”์š”์ผ 9์‹œ ์‹คํ–‰
  • ๋กœ๊ทธ ํŒŒ์ผ ์ƒ์„ฑ

yum์— ๋Œ€ํ•ด์„œ

๊ฐœ๋…

  • Yellowdog Update Modified์˜ ์•ฝ์ž
  • ๋ ˆ๋“œํ–‡ ๊ณ„์—ด์˜ ๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€ ์„ค์น˜ ๊ด€๋ฆฌ ๋„๊ตฌ
  • rpm์ด ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ๋˜ ํŒจํ‚ค์ง€ ์˜์กด์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ์Šค๋งˆํŠธํ•œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ํˆด
  • ํŒจํ‚ค์ง€ ์˜์กด์„ฑ ๋ฌธ์ œ๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ์„ค์น˜, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ๋ฅผ ์ง„ํ–‰ → Spring(=rpm)์—์„œ ์•ˆ๋˜๋˜ dependency ์ฃผ์ž…์„ Springboot(=yum)์—์„œ ํ•ด์ฃผ๋Š” ๋Š๋‚Œ
  • ๋ฐœ์Œ์€ ๋Œ€๋ถ€๋ถ„ ์—ผ์ด๋ผ๊ณ  ํ•œ๋‹ค..!

๐Ÿ’ก ํŒจํ‚ค์ง€ ์˜์กด์„ฑ ์ด๋ž€?

๋”๋ณด๊ธฐ

A๋ผ๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด B ํŒจํ‚ค์ง€๋ฅผ ๋จผ์ € ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

A๋ผ๋Š” ํŒจํ‚ค์ง€๋ฅผ B ํŒจํ‚ค์ง€์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ œ์ž‘๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์„œ๋กœ ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€๋“ค์ด ์˜์กด์„ฑ์„ ๊ฐ–๊ฒŒ ๋˜์–ด ํŒจํ‚ค์ง€ ๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๊ฐ€ ์ ์  ๋ณต์žกํ•ด์ง€๊ฒŒ ๋˜๊ณ , ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

 

์‚ฌ์šฉ๋ฒ•

  • ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋Š” ์ธํ„ฐ๋„ท์— ์žˆ๋Š” ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ์—ฌ์•ผ ํ•จ
  • ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ ์„œ๋ฒ„๋Š” /etc/yum.conf์™€ /etc/yum.repos.d/ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ €์žฅ์†Œ ํŒŒ์ผ์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋จ
# ์‚ฌ์šฉ ํ˜•์‹
yum [์˜ต์…˜] [๋ช…๋ น] [ํŒจํ‚ค์ง€๋ช…]

# ์„ค์น˜
yum install ํŒจํ‚ค์ง€๋ช…
yum -y install ํŒจํ‚ค์ง€๋ช…  # y์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ yes/no ์—ฌ๋ถ€๋ฅผ ๋ฌป์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ

# ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก ํ™•์ธ
yum check-update

# ์—…๋ฐ์ดํŠธ
yum update ํŒจํ‚ค์ง€๋ช…

# ์‚ญ์ œ
yum remove ํŒจํ‚ค์ง€๋ช…

# ์ •๋ณด ํ™•์ธ
yum info ํŒจํ‚ค์ง€๋ช…

# ํŒจํ‚ค์ง€ list ghkrdls
yum list
yum list | grep ํŒจํ‚ค์ง€๋ช… # ์›ํ•˜๋Š” ํŒจํ‚ค์ง€ ๋ชฉ๋ก๋งŒ ํ™•์ธ

# ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ์ค‘ ์—…๋ฐ์ดํŠธ๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ๋ณด๊ณ ์‹ถ์€ ๊ฒฝ์šฐ
yum list updates

# ์„ค์น˜ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€ ๋ฆฌ์ŠคํŠธ
yum list available                                                                        

# ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ฆฌ์ŠคํŠธ
yum list installed

 

๋™์ž‘๋ฐฉ์‹

  1. yum install๋กœ ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  2. /etc/yum.repos.d/ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์—ฌ๋Ÿฌ ์„ค์ •ํŒŒ์ผ ๋ฐ CentOS-Base.repo ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ธํ„ฐ๋„ท ์ƒ์˜ ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ ์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.
  3. ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์ €์žฅ์†Œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์–ป์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ํŒจํ‚ค์ง€๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ๋ชฉ๋ก๋งŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  4. 3๋ฒˆ๊ณผ ๋™์ผ
  5. ๊ฐ€์ ธ์˜จ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅํ•˜๊ณ  ์„ค์น˜ํ•  ๊ฒƒ์ธ์ง€(y/n) ๋ฌป์Šต๋‹ˆ๋‹ค.
  6. y๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

CentOS-Base.repo ์„ค์ • ํŒŒ์ผ

ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋ฐ›๋Š” ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ ์„œ๋ฒ„๋Š” /etc/yum.repos.d/CentOS-Base.repo ํŒŒ์ผ์— ์ฃผ์†Œ๊ฐ€ ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํŒŒ์ผ์„ ์—ด์–ด๋ด…๋‹ˆ๋‹ค.

vi /etc/yum.repos.d/CentOS-Base.repo

 

ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

 

ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ

๊ฐ ํ•ญ๋ชฉ์€ ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

[base], [updates], [extras]๋Š” ๋™์ž‘๋ฐฉ์‹์— ์žˆ๋Š” ์›๋ณธ ํŒจํ‚ค์ง€, ์—…๋ฐ์ดํŠธ ํŒจํ‚ค์ง€, ์ถ”๊ฐ€ ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค.

 

[base]

  • CentOS๊ฐ€ ๋ฆด๋ฆฌ์ฆˆ ๋˜๋Š” ์‹œ์ ์— ์ œ์ž‘๋œ ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€
  • ๋ฐฐํฌํŒ์„ ์ฒ˜์Œ ์„ค์น˜ํ• ๋•Œ ๊ฐ™์ด ์„ค์น˜๋˜๋Š” ํŒจํ‚ค์ง€, DVD ์ด๋ฏธ์ง€์— ๋‹ด๊ฒจ์žˆ์Šต๋‹ˆ๋‹ค.
 
[updates]
  • ์ดํ›„ ๋ฒ„๊ทธ ์ˆ˜์ •์ด๋‚˜ ๊ธฐ๋Šฅ ์ˆ˜์ • ๋“ฑ์œผ๋กœ ์ธํ•ด ์—…๋ฐ์ดํŠธ ๋œ ํŒจํ‚ค์ง€
  • [updates] ํ•ญ๋ชฉ์— URL์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • yum์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ [base] ์ €์žฅ์†Œ๊ฐ€ ์•„๋‹Œ [updates] ์ €์žฅ์†Œ๋ฅผ ์ด์šฉํ•˜๋ฉฐ, ์ด ํ•ญ๋ชฉ์„ ์ฃผ์„์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด yum ๋ช…๋ น์–ด๋กœ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ• ๋•Œ ์—…๋ฐ์ดํŠธ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์›๋ณธํŒจํ‚ค์ง€ ์ €์žฅ์†Œ์˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
 
[extras], [centosplus]
  • ์ถ”๊ฐ€๋กœ ๋ฐฐํฌ๋œ ํŒจํ‚ค์ง€์ธ ์ถ”๊ฐ€ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ ์„ค์ •์€ [extras] ํ•ญ๋ชฉ์—์„œ ๊ด€๋ฆฌ
  • [centosplus] ํ•ญ๋ชฉ์ด ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ enabled=0 ์œผ๋กœ ์„ค์ •์ด ๊บผ์ ธ์žˆ๊ณ  ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

CentOS-Base.repo ์„ค์ • ๊ตฌ์„ฑ

  • name : ์ €์žฅ์†Œ์˜ ์ด๋ฆ„์„ ๋ช…์‹œํ•œ ๊ฒƒ์ด๋ฉฐ, ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ์ง€์ •ํ•ด๋„ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค.
  • mirrorlist : baseurl ์†์„ฑ์˜ ๊ฐ’์ด ์ƒ๋žต๋œ ๊ฒฝ์šฐ ์ด๊ณณ์— ๋ช…์‹œ๋œ URL์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ CentOS ํ”„๋กœ์ ํŠธ์—์„œ ์šด์˜ํ•˜๋Š” ๊ณต์‹ ์„œ๋ฒ„ URL์ด ์ง€์ • ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • baseurl : ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ์˜ url์ด๋ฉฐ, http://, ftp://, file:// ํ”„๋กœํ† ์ฝœ ์Šคํ‚ด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • gpgcheck : GPG(GNU Privacy Guard) ํ‚ค๊ฐ€ ๋“ค์–ด์žˆ๋Š” ์ €์žฅ์†Œ์˜ URL์„ ์ ์Šต๋‹ˆ๋‹ค. GPG ํ‚ค๋Š” rpm ํŒจํ‚ค์ง€๋ฅผ ์ธ์ฆํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์•”ํ˜ธํ™” ์„œ๋ช…์ž…๋‹ˆ๋‹ค.
  • enabled : ์ด ์ €์žฅ์†Œ ์„ค์ • ์—ฌ๋ถ€๋ฅผ ์‚ฌ์šฉํ• ๊ฒƒ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 1์ด๋ฉฐ 1 = ์‚ฌ์šฉ, 0 = ๋ฏธ์‚ฌ์šฉ ์ž…๋‹ˆ๋‹ค.
 

๐Ÿ”œ ๋” ์•Œ์•„๋ณผ ๋‚ด์šฉ

  • RPM
  • epel
 
 

์ฐธ๊ณ 

https://dololak.tistory.com/331

https://dololak.tistory.com/332

#!

sharp(#) + bang(!)์˜ ํ•ฉ์„ฑ์–ด, shebang์ด๋ผ ํ•œ๋‹ค.

  • 2byte์˜ ๋งค์ง ๋„˜๋ฒ„(magic number)๋กœ ์ด ์ž์ฒด๊ฐ€ ํ•˜๋‚˜์˜ ๊ธฐํ˜ธ
  • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜๋Š” ์—ญํ• 
  • ์ด ๋’ค์— ๋‚˜์˜ค๋Š” ๊ฒƒ์€ ๊ฒฝ๋กœ๋ช…, ๋ช…๋ น์–ด๋“ค์„ ํ•ด์„ํ•  ํ”„๋กœ๊ทธ๋žจ์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • ๊ฒฝ๋กœ๊ฐ€ ์ •ํ™•ํ•˜์ง€ ์•Š๋‹ค๋ฉด bad interpreter ๋ฐœ์ƒ
  • ๋‹ค๋ฅธ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ฌธ๋ฒ• ์˜ค๋ฅ˜ ๋ฐœ์ƒ

๋ฌธ๋ฒ•

#!<interpreter> [optional-arg]

#! ๋’ค์— ๊ณต๋ฐฑ์ด ํ•˜๋‚˜ ์žˆ์–ด๋„ ๋™์ž‘
<interpreter>์—๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ ˆ๋Œ€๊ฒฝ๋กœ ์ž…๋ ฅ

์˜ˆ์‹œ

#!/bin/sh
#!/bin/bash
#!/usr/bin/php
#!/usr/bin/python -O
#!/usr/bin/env bash

#!/usr/bin/env

  • interpreter์— ๋“ค์–ด๊ฐˆ ํ”„๋กœ๊ทธ๋žจ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋Š” ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.
    ex) ํŒŒ์ด์ฌ์„ ์˜ˆ๋กœ ๋“ค๋ฉด /bin/local/python ๋˜๋Š” /usr/bin/python์— ์œ„์น˜ํ•  ์ˆ˜๋„ ์žˆ๊ณ 
    ๋ฒ„์ „๋„ python2์™€ python3์ด ๋‘˜๋‹ค ์„ค์น˜๋˜์–ด ์žˆ์„์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋Ÿด ๋•Œ #!/usr/bin/env๋กœ ์„ค์ •ํ•˜๋ฉด ์ ˆ๋Œ€๊ฒฝ๋กœ์— ์ƒ๊ด€์—†์ด ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„์„œ ์‚ดํ–‰
    • env๋Š” ์‚ฌ์šฉ์ž์˜ $PATH(ํ™˜๊ฒฝ๋ณ€์ˆ˜)์—์„œ ์ฒซ๋ฒˆ์งธ๋กœ ์ฐพ์€ ๋ช…๋ น๋ฅผ ์ฐพ์•„์„œ ์‹คํ–‰๋จ
    • ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ผ๋ฉด env ์‚ฌ์šฉํ•˜๊ธฐ

์˜ˆ์‹œ

# ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ •๋ณด ์ถœ๋ ฅ
env

# ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ •๋ณด ๋ณ€๊ฒฝ
env -i HOSTNAME=test.com

# ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ •๋ณด ๋ณ€๊ฒฝ
env -u HOSTNAME

# env ์ด์šฉํ•œ bash ์‹คํ–‰ํ•˜๊ธฐ
/usr/bin/env bash --version

ํ…Œ์ŠคํŠธ

1. vi test ํŒŒ์ผ ์ž‘์„ฑ

#!/usr/bin/env bash

echo "Hello, This is Bash"

2. ์‹คํ–‰ ๊ถŒํ•œ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹คํ–‰

# ๊ถŒํ•œ ์ถ”๊ฐ€
$ chmod +x test

# ์‹คํ–‰
$ ./test
Hello This is Bash

3. ๋‹ค์‹œ ํŒŒ์ผ์„ ์—ด๊ณ  ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ํŒŒ์ด์ฌ์œผ๋กœ ์ง€์ •

#! /usr/bin/env python

echo "Hello This is Bash"

4. ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•์— ๋งž์ง€ ์•Š์•„ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

$ ./test
File "./test", line 3
echo "Hello This is Bash"
^
SyntaxError: invalid syntax

5. ํŒŒ์ผ ์—ด๊ณ  ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•์œผ๋กœ ์ˆ˜์ •

#! /usr/bin/env python

print "Hello This is Python"

6. ํŒŒ์ผ ์‹คํ–‰ํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•จ

$ ./test
Hello This is Python

 

์ฐธ๊ณ 

https://blog.gaerae.com/2015/10/what-is-the-preferred-bash-shebang.html

https://bcp0109.tistory.com/343

https://ingorae.tistory.com/365

+ Recent posts