2023. 6. 14. 15:47ใSystem ์์ ์ค/LINUX
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ ํ๋ก์ธ์ค ๊ธฐ๋ ์๋ํ
๐ฝ ๊ฐ์
๐ฆ ์๊ฐ
์ฃผ๋๋ ํ์ฌ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ๋ด๋ถ์์ ์ฌ์ฉํ ํ์๊ด๋ฆฌ ์๋ฃจ์
์ Docker์ gitea๋ผ๋ ๊ฒ์ ์ด์ฉํ์ฌ ์ฌ์ฉํ๊ณ ์์ด์.
๊ทธ๋ฐ๋ฐ, ํด๋น Docker๋ฅผ ํ์ ์๋ฒ๊ฐ ์ฌ๊ธฐ๋๋๊ฑฐ๋, ํด๋น Docker๊ฐ ์ฌ๊ธฐ๋ ๋๊ฒ ๋๋ฉด gitea Processe๊ฐ ์๋์ผ๋ก ๊ธฐ๋๋์ง ์์ ์์์
์ผ๋ก ๊ธฐ๋ํด์ค์ผ ํ๋ ์์ฃผ ๊ท์ฐฎ์ ์ํฉ์ด ๋ฐ๋ณต ๋์์ด์.
์ด๋ฅผ ๊ฐ๋ฐ์ ๋ต๊ฒ! ์๋์ผ๋ก ์ด์์ฒด์ ๊ฐ ์์์ ํ ์ ์๋๋ก ํด๋ณด๋ ค๊ณ ํด์.
์ฃผ๋๋ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ ์์
์ ํด๋ณด๋ ค๊ณ ํด์.
๐ฝ ์ ์คํฌ๋ฆฝํธ
๐ฆ ๋ง๋ค๊ธฐ
#!/bin/bash
NOW=$(date +"%y-%m-%d %T")
echo "[$NOW] Gitea Process Run Status Check & Auto Run Job Start" >> /var/log/gitea/run/run.log 2>&1
echo "[$NOW] First Step. Check Gitea Process" >> /var/log/gitea/run/run.log 2>&1
giteaProcessor=$(ps -ef | grep gitea | grep -v 'grep'|grep -v $0)
pid=$(echo ${giteaProcessor} | cut -d " " -f2)
echo "[$NOW] Seccond Step. Gitea Process Run" >> /var/log/gitea/run/run.log 2>&1
if [ -n "${pid}" ]; then
echo "[$NOW] Gitea Processor Status is Good" >> /var/log/gitea/run/run.log 2>&1
else
echo "[$NOW] Gitea Processor Status is dead Try Gitea Run" >> /var/log/gitea/run/run.log 2>&1
systemctl restart gitea
if [ $? != 0 ]; then
echo "[$NOW] So Sorry Gitea Processor Run Failed" >> /var/log/gitea/run/run.log 2>&1
else
echo "[$NOW] Gitea Processor Run Success" >> /var/log/gitea/run/run.log 2>&1
fi
fi
echo "[$NOW] Gitea Process Run Status Check & Auto Run Job End" >> /var/log/gitea/run/run.log 2>&1
์ฃผ๋๊ฐ ์ฌ์ฉํ ์ ์คํฌ๋ฆฝํธ์์.
giteaProcessor=$(ps -ef | grep gitea | grep -v 'grep'|grep -v $0)
์ด ๋ถ๋ถ์ ํตํด gitea ํ๋ก์ธ์ค๊ฐ ๊ธฐ๋ ์ค์ธ์ง๋ฅผ ํ์ธํ๋ ค๊ณ ํด์.
ํด๋น ๋ช
๋ น์ด๋ ๋์ด์ฐ๊ธฐ(๊ณต๋ฐฑ)์ผ๋ก gitea ํ๋ก์ธ์ค๋ฅผ ps -ef ๋ช
๋ น์ด๋ก ๊ฒ์ํ์ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ giteaProcessor ๋ณ์์ ์ ์ฅํ๋๋ก ํ์์ด์. ์ด ๋, grep๊ณผ ์คํํ ์ ์คํฌ๋ฆฝํธ ์ด๋ฆ์ ๊ฒ์๋์ง ์๊ฒ ํ๊ธฐ ์ํด grep -v๋ก ์ ์ธ ์์ผ์ฃผ์์ด์.
pid=$(echo ${giteaProcessor} | cut -d " " -f2)
๊ทธ๋ฐ ๋ค ์ ๋ช
๋ น์ด๋ฅผ ํตํด giteaProcessor ๋ณ์์ ๋ด๊ธด ๋ด์ฉ์ ๋์ด์ฐ๊ธฐ(๊ณต๋ฐฑ)์ ๊ธฐ์ค์ผ๋ก ์๋ฅด๊ณ ,
๊ทธ ์ค 2๋ฒ์งธ ๊ฐ์ pid ๋ณ์์ ์ ์ฅํ ์ ์๊ฒ ํด ์ฃผ์์ด์.
์๋ํ๋ฉด ps -ef ๋ช
๋ น์ด๋ฅผ ํตํด ๋์จ ๊ฒฐ๊ณผ๊ฐ์ 2๋ฒ์งธ ๊ฐ์ด pid ๊ฐ์ ๋ํ๋ด๊ธฐ ๋๋ฌธ์ด์์.
if [ -n "${pid}" ]; then
์ if๋ฌธ์์ ํด๋น pid ๋ณ์์ ๋ด๊ธด ๊ฐ์ด 0์ธ์ง ์๋์ง๋ฅผ ํ์ธํ๊ณ ์์ด์.
๋ง์ฝ 0์ด ์๋๋ผ๋ฉด ์ฐธ์ด ๋์ด ์๋ ๋ด์ฉ์ ์คํํ๊ฒ ๋๋ต๋๋ค.
echo "[$NOW] Gitea Processor Status is Good" >> /var/log/gitea/run/run.log 2>&1
๋จ์ํ ์ ์๋ ์ค์ด๋ผ๋ ๊ฒ์ ์๋ ค์ฃผ๊ธฐ ์ํ ๋ด์ฉ์ด์์.
ํ์ง๋ง, 0์ด๋ผ๋ฉด ์๋ ๋ด์ฉ์ ์คํํ๊ฒ ๋์.
echo "[$NOW] Gitea Processor Status is dead Try Gitea Run" >> /var/log/gitea/run/run.log 2>&1
systemctl restart gitea
if [ $? != 0 ]; then
echo "[$NOW] So Sorry Gitea Processor Run Failed" >> /var/log/gitea/run/run.log 2>&1
else
echo "[$NOW] Gitea Processor Run Success" >> /var/log/gitea/run/run.log 2>&1
fi
์ฌ๊ธฐ์ systemctl restart gitea ๋ช
๋ น์ด๊ฐ ์
๋ ฅ๋์ด gitea ํ๋ก์ธ์ค๊ฐ ๋ค์ ๊ธฐ๋๋ ์ ์๋๋ก ํด ์ฃผ์์ด์.
๊ทธ๋ฐ ๋ค :wq๋ฅผ ์
๋ ฅํ์ฌ ์ ์ฅํ๊ณ , Editor๋ฅผ ๋์ ์ฃผ์์ด์.
๐ฆ Test
๊ทธ๋ผ ์์์ ๋ง๋ ์คํฌ๋ฆฝํธ๊ฐ ์ ์๋ํ๋์ง ํ์ธํด ๋ณผ๊น์?
ํ
์คํธ๋ฅผ ์ํด gitea ํ๋ก์ธ์ค๋ฅผ ์ฃฝ์ฌ ์ฃผ์์ด์.
๊ทธ๋ฐ ๋ค ๋ง๋ค์ด์ค ์คํฌ๋ฆฝํธ๋ฅผ ์๋ ์์ผ ์ฃผ์์ด์.
Log๊ฐ ์ ๋จ์๊ฑธ ํ์ธํ ์ ์์ด์.
gitea ํ๋ก์ธ์ค๋ ์ ์ฌ๋ผ์จ ๊ฑธ ํ์ธํ ์ ์์ด์.
์ด๋ฐ์์ผ๋ก ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ํน์ ํ๋ก์ธ์ค๋ฅผ ์ด๋ฆด ์ ์๋๋ก ๋ง๋ค ์ ์์ด์.
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
'System ์์ ์ค > LINUX' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Shell Script] ์๋ฒ ์ฌ๋ถํ ์ Docker ์์ ํน์ Deamon ์๋ ๊ธฐ๋๋๊ฒ ๋ง๋ค๊ธฐ (0) | 2023.06.15 |
---|---|
[Shell Script] Bash Shell Script๋ฅผ ์ด์ฉํ Docker ์๋ ๊ธฐ๋ (0) | 2023.06.14 |
[Linux] SSL/TLS ์ธ์ฆ์ ๋ง๋ค๊ธฐ (0) | 2022.11.16 |
[CentOS 7.9] Synology NAS Volume Mount (4) | 2022.11.09 |
[Ubuntu] logrotate (0) | 2022.11.02 |