2023. 8. 7. 13:40ใSystem ์์ ์ค/LINUX
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ SHC๋ฅผ ์ด์ฉํ Shell Script ์ํธํ
๐ฝ ๊ฐ์
๐ฆ ์๊ฐ
์ด ์ ๊ธ์์ ์ฃผ๋๋ ๋์ค์ฝ๋ ์นํ
์ ํตํด ์๋ฒ ์ ์ ์ฌ์ฉ์๊ฐ ์๋ค๋ฉด ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด ๋ณด์์ด์.
๊ทธ๋ฐ๋ฐ, ์ด ๊ณณ์๋ ๋์ค์ฝ๋ ์นํ
URL ์ ๋ณด๊ฐ ๋ฒ์ ์ด ๋จ์๋ฒ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ์์ด์.
์ ์คํฌ๋ฆฝํธ์์ ์ฃผ์ ์ ๋ณด๋ฅผ ๊ฐ๋ฆฌ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด SHC๋ผ๋ ๊ฒ์ธ๋ฐ, ์ด๋ฒ์๋ ์ด๊ฑธ ์ค์นํ๊ณ , ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํด ๋ณด๋๋ก ํ๋ ค๊ณ ํด์.
๐ฝ Linux
๐ฆ ์ค์น
์ฃผ๋๊ฐ ๊ตฌ์ฑํ OS๋ Ubuntu 22.04์ด๊ณ , ์ด๊ฑธ ํตํด ์ค์นํด ๋ณด๋๋ก ํ ๊ฒ์.
์ต์ด ํจํค์ง ์
๋ฐ์ดํธ ์งํํด ์ค๊ฒ์.
build-essential ํจํค์ง๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ธฐ ์ํด ํ์ํ ํต์ฌ ๋๊ตฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ๊ณ ์์ด์.
์ฃผ๋ก C๋ C++๋ก ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ ค๋ ๊ฒฝ์ฐ์ ํ์ํ ์ปดํ์ผ๋ฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํค๋ ํ์ผ ๋ฑ์ด ํฌํจ๋์ด ์๋ต๋๋ค.
ํด๋น ํจํค์ง๋ฅผ ์ค์นํด ์ค๊ฒ์.
์ด์ ๋ถํฐ๋ root๊ฐ ์๋ ์ถ๊ฐ ๊ด๋ฆฌ์ฉ ๊ณ์ ์ผ๋ก ์งํํด ๋ณผ๊ฒ์.
ํด๋น ๊ณ์ ์ ํ ๋๋ ํฐ๋ฆฌ์์ ์์ ๊ฐ์ด SHC ์ค์น ํ์ผ์ ๋ด๋ ค ๋ฐ์ ์ค๊ฒ์.
๋ด๋ ค๋ฐ๊ธฐ๋ฅผ ์๋ฃํ์์ผ๋ฉด ์์ ๊ฐ์ด ์์ถ์ ํ์ด์ค๋๋ค.
SHC ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํ์ฌ make ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด ์ค๊ฒ์.
๐ก ์ฐธ๊ณ ์ฌํญ
make ๋ช ๋ น์ด
make ๋ช ๋ น์ด๋ ์ํํธ์จ์ด ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๊ณ ์ปดํ์ผํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋๊ตฌ์ ๋๋ค. ์ฃผ๋ก C, C++, ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผํ๊ณ ์คํ ํ์ผ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ณํํ๋ ์์ ์ ์๋ํํ๋ ๋ฐ ์ฌ์ฉ.
make ๋ช ๋ น์ด๋ ์ฃผ์ด์ง ์์ค ์ฝ๋์ ๋น๋ ์ค์ ์ ๋ฐ๋ผ ์ปดํ์ผ ๊ณผ์ ์ ์๋์ผ๋ก ์ํํ๋ฉฐ, ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ณต์กํ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ๋จํ๊ฒ ๊ด๋ฆฌ. Makefile์ด๋ผ๋ ํ ์คํธ ํ์ผ์ ๋น๋ ์ค์ ๊ณผ ๊ท์น์ ๊ธฐ์ ํ์ฌ make ๋ช ๋ น์ ์คํํ๋ฉด ์ด ํ์ผ์ ๊ธฐ์ ๋ ๊ท์น์ ๋ฐ๋ผ ์ปดํ์ผ ๋ฐ ๋น๋ ์งํ.
make ๋ช ๋ น์ด๋ ์ํํธ์จ์ด ํ๋ก์ ํธ์์ ์์ค ์ฝ๋ ํ์ผ์ด ์์ ๋์์ ๋, ๋น๋ ๊ณผ์ ์ ๋ค์ ์ํํ์ฌ ์๋ก์ด ์คํ ํ์ผ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ๋ ์ญํ . ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ฝ๋ ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ๋น๋ ์์ ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅ.
์์ฝํ๋ฉด, make ๋ช ๋ น์ด๋ ์ํํธ์จ์ด ํ๋ก์ ํธ์ ๋น๋ ๋ฐ ์ปดํ์ผ ์์ ์ ์๋ํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ, Makefile์ ์ ์๋ ๊ท์น์ ๋ฐ๋ผ ์ปดํ์ผ ํ๋ก์ธ์ค๋ฅผ ์ํ.
์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ ์ค์นํ๋ ค๊ณ ํ ๋, ์์ ๊ฐ์ด /usr/local/man/man1 ๋๋ ํฐ๋ฆฌ๊ฐ ์๋ค๊ณ ํ๋ฉด ์๋์ ๊ฐ์ด ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ค์ผ ํด์.
์์ ๊ฐ์ด ๋์ค๋ฉด ์ ์์ ์ผ๋ก ์ค์น๊ฐ ์๋ฃ๋ ๊ฒ์ด์์.
shc ๋ช
๋ น์ด๊ฐ ์ธ์๋๋๊ฑธ ํ์ธํ ์ ์์ด์.
๐ก ์ฐธ๊ณ ์ฌํญ
shc ๋ช ๋ น์ด ์ต์
-e date : ๋ง๋ฃ์ผ ์ง์ (dd/mm/yyyy)
-m message : ๋ง๋ฃ์ผ์ด ์ง๋ฌ์ ๊ฒฝ์ฐ ๋ฉ์์ง ์ถ๋ ฅ
-f script_file : ์คํฌ๋ฆฝํธ ํ์ผ์ ์ง์ ํ์ฌ ๋ฐ์ด๋๋ฆฌ ์์ฑ
๐ฝ ์ฃผ์ ์ ๋ณด ๊ฐ์ถ๊ธฐ
๐ฆ ์ ์คํฌ๋ฆฝํธ ์ํธํ
์ค์น๊ฐ ์๋ฃ๋์์ผ๋ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ํธํ ํด๋ณด๋๋ก ํ ๊ฒ์.
root ๊ณ์ ์ผ๋ก ์ค์์นญํ ๋ค /etc/profile.d ๋ฐ์ ์๋ UserAccessAlarm.sh๋ฅผ ์ํธํ ํด๋ณด๋๋ก ํ ๊ฒ์.
์์ ๊ฐ์ด ์ํธํ๋ฅผ ํ๋ .x ํ์ฅ์์ .x.c ํ์ฅ์ ํ์ผ์ด ์์ฑ๋ ๊ฑธ ํ์ธํ ์ ์์ด์.
์ํธํ๋ ์ ์คํฌ๋ฆฝํธ ๊ถํ์ ์์ ํด ์ฃผ์์ด์.
์์ ๊ฐ์ด ์ํธํ๊ฐ ๋ ๊ฑธ ํ์ธํ ์ ์์ด์.
๐ง ์ฐธ๊ณ ์๋ฃ
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."