์‚ฌ๋‚ด ๊ฒŒ์ดํŠธ์›จ์ด์— ์ ‘์†ํ•  ๋•Œ๋งˆ๋‹ค ๋ช…๋ น์–ด ์ „์ฒด๋ฅผ ์ž…๋ ฅํ•ด์•ผ ๋˜๋Š” ๊ฒƒ์„

alias ์„ค์ •์„ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝํ•ด๋ณด์ž!

 

 

ASIS

์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ „์ฒด ์ž…๋ ฅํ•ด์•ผ ํ–ˆ๋‹ค.

ssh [ID]@hcon.nhnent.com

 

TOBE

๋‹จ์–ด ํ•˜๋‚˜ ์ž…๋ ฅ์œผ๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

hcon

 

 

1. /Users/nhn ์œ„์น˜๋กœ ์ด๋™

cd /Users/nhn

 

2. zshrc, cshrc ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธ

ls -a

 

3. zshrc, cshrc ํŒŒ์ผ ์—ด๊ธฐ

vi ~/.zshrc
vi ~/.cshrc

 

4. ๋‘ ํŒŒ์ผ ๋ชจ๋‘ alias ์„ค์ •

alias hcon="ssh [ID]@hcon.nhnent.com"

 

5. ๋‘ ํŒŒ์ผ ๋ชจ๋‘ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ ์šฉ

source ~/.zshrc
source ~/.cshrc

 

๋! ์ ‘์† ์‹œ hcon ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค!

 

nohup

๋ฆฌ๋ˆ…์Šค์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•œ ํ„ฐ๋ฏธ๋„์˜ ์„ธ์…˜ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋”๋ผ๋„ ์ง€์†์ ์œผ๋กœ ๋™์ž‘ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด

 

nohup ๋ช…๋ น์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ(&)๋กœ ์‹คํ–‰

&๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰์ด ๋จ

 

๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜๊ธฐ

ps -ef | grep python

 

nohup๊ณผ &์˜ ์ฐจ์ด

  • nohup
    • ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐ๋ชฌ ํ˜•ํƒœ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์„ธ์…˜ ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๋”๋ผ๋„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณ„์† ๋™์ž‘๋จ
    • ์‹คํ–‰ ์‹œํ‚ค๋ฉด ๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์„ธ์…˜ ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐ”๋กœ ์ข…๋ฃŒ๋จ
  • ๋ฐฑ๊ทธ๋ผ์šด๋“œ(&)
    • ์‹คํ–‰ ์‹œํ‚ค๋ฉด ๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ์—†์ง€๋งŒ, ์„ธ์…˜ ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๋ฉด ํ”„๋กœ์„ธ์Šค๋„ ํ•จ๊ป˜ ์ข…๋ฃŒ๋จ
  • ๋”ฐ๋ผ์„œ, nohup ๋ช…๋ น์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ(&)๋กœ ๊ฐ™์ด ์‹คํ–‰์‹œํ‚ค๊ฒŒ ๋˜๋ฉด, ๋Œ€๊ธฐ ์ƒํƒœ๋„ ์—†๊ณ  ์„ธ์…˜ ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๋”๋ผ๋„ ํ”„๋กœ์„ธ์Šค์˜ ์ข…๋ฃŒ ์—†์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰๋˜๊ฒŒ ๋œ๋‹ค.

๋ฌธ์ œ ์ƒํ™ฉ

nohup node ./node_modules/@vue/cli-service/bin/vue-cli-service serve --port [PORT] &
nohup python manage.py runserver [IP]:[PORT] --settings=main.config.settings.debug

์œ„์˜ ๋ช…๋ น์œผ๋กœ ์‚ฌ์ดํŠธ๋ฅผ ์„œ๋ฒ„์— ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ..
๋•Œ๋•Œ๋กœ ์›น์ด ๋‚ด๋ ค๊ฐ€๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

 

์›์ธ

์ž˜๋ชป๋œ ๋ช…๋ น์–ด๋กœ ์ธํ•ด์„œ ์‚ฌ์‹ค ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰์ด ์•ˆ ๋˜๊ณ  ์žˆ๋Š”๊ฒŒ ์•„๋‹๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ

์™œ ๊ทธ๋Ÿฌ๋Š”์ง€ ์‹คํ–‰ํ•  ๋•Œ ๋ช…๋ น์„ ๋‹ค์‹œ ์‚ดํŽด๋ดค๋”๋‹ˆ

๋„์šธ ๋•Œ ์žฅ๊ณ  ์‹คํ–‰์— & ๋ฅผ ๋ถ™์ด์ง€ ์•Š๊ณ  ์‹คํ–‰ํ•ด์„œ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์„ ๋‹ซ์œผ๋ฉด ํ”„๋กœ์„ธ์Šค๋„ ๊ฐ™์ด ์ข…๋ฃŒ๋˜์—ˆ๋˜ ๊ฒƒ์ด์—ˆ๋‹ค..

nohup python manage.py runserver [IP]:[PORT] --settings=main.config.settings.debug

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

1. ๋„์šธ ๋•Œ & ๋ฅผ ์žŠ์ง€ ๋ง์ž!

nohup python manage.py runserver [IP]:[PORT] --settings=main.config.settings.debug &

 

2. ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ ํฌ๋ก ์žก ๋“ฑ๋ก

์„œ๋ฒ„๊ฐ€ ์•„์˜ˆ ์žฌ๋ถ€ํŒ… ๋˜๊ฑฐ๋‚˜ ๊ทธ๋Ÿด ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ๊นŒ
ํฌ๋ก ์žก์œผ๋กœ 5๋ถ„๋งˆ๋‹ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚ด๋ ค๊ฐ€ ์žˆ๋Š”์ง€ ์ฒดํฌํ•˜๊ณ  ๋‚ด๋ ค๊ฐ€ ์žˆ์œผ๋ฉด ์ž๋™์œผ๋กœ ์˜ฌ๋ ค์ฃผ๋„๋ก ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.

#!/usr/bin/env bash

# ๋กœ๊ทธ ํŒŒ์ผ ์œ„์น˜
LOG_DIRECTORY="/home1/irteamsu/cronjob/logs"
LOG_FILE="$LOG_DIRECTORY/logfile_$(date "+%Y%m%d_%H").log"

# ํ™•์ธํ•  ํ”„๋กœ์„ธ์Šค
PYTHON_PROCESS="/home1/irteamsu/.pyenv/versions/py39/bin/python manage.py runserver [IP]:[PORT] --settings=main.config.settings.debug"
NODE_PROCESS="node ./node_modules/@vue/cli-service/bin/vue-cli-service serve --port [PORT]"

# ์‹คํ–‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ
PROCESS_DIRECTORY="/home1/irteamsu/variable-comparison"

# ๋กœ๊ทธ์— ๋‚จ๊ธธ ํ˜„์žฌ์‹œ๊ฐ
log_current_time() {
    current_time=$(date "+%Y-%m-%d %H:%M:%S")
    echo "[$current_time] $1" >> "$LOG_FILE"
}

# ํ˜„์žฌ ์‹œ๊ฐ„์„ ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ๊ตฌํ•˜๊ธฐ
current_hour=$(date "+%H")

# ์ด์ „ ์‹œ๊ฐ„๋Œ€์˜ ๋กœ๊ทธ ํŒŒ์ผ ์œ ์ง€, ๋‚˜๋จธ์ง€ ๋กœ๊ทธ ํŒŒ์ผ ์‚ญ์ œ
for ((hour=0; hour<current_hour; hour++)); do
    if [ "$hour" -lt 10 ]; then
        rm "$LOG_DIRECTORY/logfile_$(date "+%Y%m%d_0$hour").log" 2>/dev/null
    else
        rm "$LOG_DIRECTORY/logfile_$(date "+%Y%m%d_$hour").log" 2>/dev/null
    fi
done

# python ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ
if pgrep -f "$PYTHON_PROCESS" >/dev/null; then
    log_current_time "Python process is already running."
else
    log_current_time "Python process is not running. Starting the process..."
    source ~/.bash_profile
    cd "$PROCESS_DIRECTORY"
    pyenv activate py39
    nohup /home1/irteamsu/.pyenv/versions/py39/bin/python manage.py runserver [IP]:[PORT] --settings=main.config.settings.debug > /dev/null 2>&1 &
    if pgrep -f "$PYTHON_PROCESS" >/dev/null; then
        log_current_time "Python process started."
    else
    log_current_time "Failed to start Python process."
    fi
fi

# node ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ
if pgrep -f "$NODE_PROCESS" >/dev/null; then
    log_current_time "Node.js process is already running."
else
    log_current_time "Node.js process is not running. Starting the process..."
    cd "$PROCESS_DIRECTORY"
    nohup node ./node_modules/@vue/cli-service/bin/vue-cli-service serve --port [PORT] > /dev/null 2>&1 &
    if pgrep -f "$NODE_PROCESS" >/dev/null; then
        log_current_time "Node.js process started."
    else
        log_current_time "Failed to start Node.js process."
    fi
fi
*/5 * * * * ~/cronjob/background_process_monitor.sh

 

๊ฒฐ๊ณผ

  • ๋กœ๊ทธ ํŒŒ์ผ ์ƒ์„ฑ ํ›„ 1์‹œ๊ฐ„ ๋™์•ˆ๋งŒ ๋ณด๊ด€
    • ํฌ๊ฒŒ ์œ ์˜๋ฏธํ•œ ๋กœ๊ทธ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ž˜ ๋ณด๊ด€ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋œ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์›น์ด ๋‹ค์‹œ ์˜ฌ๋ผ์˜ค๊ฒŒ ๋œ๋‹ค!

1. ๋ฌธ์ œ ์ƒํ™ฉ

์ž˜ ์ ‘์†๋˜๋˜ ์„œ๋ฒ„์˜€๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ ์—๋Ÿฌ๊ฐ€ ๋œจ๋ฉด์„œ ์ ‘์†์ด ์•ˆ ๋˜์—ˆ๋‹ค.

 

์œ„์˜ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋ฅผ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด,

 

A host๊ฐ€ ์žˆ๊ณ , B server๊ฐ€ ์žˆ๋‹ค.

A๋Š” ํ•ญ์ƒ B server์— ssh ์ ‘์†์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, B server์— ssh๋‚˜ os๋ฅผ ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋Š” ์ž‘์—…์„ ํ–ˆ๋‹ค.

๊ทธ๋žฌ๋Š”๋ฐ A๊ฐ€ ๋˜‘๊ฐ™์ด B์— ์ ‘์†์„ ์‹œ๋„ํ•˜๊ณ ,

B์˜ IP๋Š” ๋˜‘๊ฐ™๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋œฌ๋‹ค.

 

SSH ์ตœ์ดˆ ์ ‘์† ์‹œ์— A์™€ B๊ฐ€ ์„œ๋กœ ์ธ์ฆ์„ ํ•˜๋Š”๋ฐ

B๋Š” ์ƒˆ๋กœ ์„ค์น˜๋˜์—ˆ๋Š”๋ฐ A๋Š” ์˜ˆ์ „ B์— IP๋กœ ์ธ์ฆ์ด ๋˜์–ด์žˆ๋Š” ์ƒํƒœ์—์„œ B๋กœ ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด

B๋Š” ์ธ์ฆ์ •๋ณด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋œจ๋Š” ๊ฒƒ์ด๋‹ค.

 

 

2. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

vi /Users/nhn/.ssh/known_hosts

# ๋ณดํ†ต์€
# /root/.ssh/known_hosts
# /home/username/.ssh/known_hosts

์ ‘์†ํ•ด์„œ ํ•ด๋‹น IP ์ ‘์†์„ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ์ ‘์†์„ ํ•œ๋‹ค.

 

์ ‘์†ํ•ด๋ณด๋‹ˆ ์žฅ๋น„(์‹œ์Šคํ…œ)๋ช…์ด ๋ฐ”๋€๊ฑฐ ๊ฐ™์•˜๋‹ค!

 

 

 

 

 

 

์ฐธ๊ณ  ์‚ฌ์ดํŠธ

1. ๋ฌธ์ œ ์ƒํ™ฉ 

์šด์˜์„œ๋ฒ„์ธ ์šฐ๋ถ„ํˆฌ 20.04 ์ธ์Šคํ„ด์Šค์—์„œ ๋„์ปค๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ์˜์กด์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. 

(๊ฐœ๋ฐœ์„œ๋ฒ„์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ.. ์ฐจ์ด๊ฐ€ ๋ญ˜๊นŒ?)

 

๋Œ€๋žต ์ด๋Ÿฐ ์‹์œผ๋กœ..

๋ช‡๋ช‡ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์š”์ฒญํ•œ ์ƒํ™ฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ๊ณ ,
...
๋‹ค์Œ ํŒจํ‚ค์ง€์˜ ์˜์กด์„ฑ์ด ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค:
 containerd.io : ์˜์กด: libseccomp2 (>= 2.4.0) ํ•˜์ง€๋งŒ 2.3.1-2.1ubuntu2~20.04.1 ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค

 

์•„๋ž˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์ง์ ‘ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•ด๋„ ์›ํ•˜๋Š” ๋ฒ„์ „์ด ์„ค์น˜๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค :(

sudo apt-get install libseccomp2

 

2. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋‹ต์€ ๊ณต์‹ ๋‹ค์šด๋กœ๋“œ!

https://pkgs.org/download/libseccomp2

 

๋ฆฌ๋ˆ…์Šค์šฉ Libseccomp2 ๋‹ค์šด๋กœ๋“œ ์‚ฌ์ดํŠธ์— ๊ฐ€์„œ ํ™˜๊ฒฝ์— ๋งž๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

curl -O https://ubuntu.pkgs.org/20.04/ubuntu-updates-main-amd64/libseccomp2_2.5.1-1ubuntu1~20.04.2_amd64.deb.html

 

์—ญ์‹œ ๊ณต์‹์ด ์ตœ๊ณ ๋‹ค..

ํ•ด๊ฒฐ ์™„๋ฃŒ !

 

+ Recent posts