Linux ์ฌ์ฉํ๋ฉด์ ๋ฐ์ํ๋ ์๋ฌ๋ค์ ์ ๋ฆฌํ๊ณ , ๊ฐ๋จํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ์ โฐ
-
-bash : syntax error near unexpected token `('
- ์ค๊ฐ์ ๊ดํธ๋ถ๋ถ์ด ์๋ฌ ์์ธ์ธ๋ฐ, ๊ดํธ๋ถ๋ถ์ ๋ํด ์๋ฐ์ดํ๋ก ๊ฐ์ธ์ฃผ๋ฉด ์๋ฌ ํด๊ฒฐ โ
-
์๋ฒ ๋ด ํ ์คํธ์ ๋ฐ์ํ๋ ์๋ฌ : too many open files!!!
- ์๋ฒ ํ๊ฒฝ ์ค์ ํด์ผ ๋จ (openfiles ๊ฐ ์ค์ ํ์)
- ulimit ๋ช
๋ น์ด์ -n ์ต์
์ ํตํด ์ค์ ๊ฐ๋ฅ
ulimit -n 40960
- /ext/security/limits.conf ํ์ผ์ ์ถ๊ฐ/์์ ์ ํตํด ์ค์ ๊ฐ๋ฅ
<๊ณ์ ๋ช > soft nofile 40960
<๊ณ์ ๋ช > hard nofile 40960
- ๋ค๋ฅธ ์ฌ๋์ ๋ธ๋ก๊ทธ ์ฐธ๊ณ ๐
-
์๋ฒ ๋ด ํ ์คํธ์ ๋ฐ์ํ๋ ์๋ฌ : no space left on device
- ์๋ฒ ์ฉ๋ ๋ถ์กฑ์ผ๋ก ์ธํด ๋ฐ์
- ๋ช
๋ น์ด๋ฅผ ํตํด ์ฉ๋ ์ฒดํฌ
-
dh -h
-
dh -i
: Inodes ๊ฐ ์ฒดํฌ --> Inodes ๊ฐ์ด 100%์์ ํ์ธํ ์ ์์์ด๋, inode๋ ํ์ผ ์์คํ ์์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ฉฐ ์ ๊ท ํ์ผ ๋๋ ํฐ๋ฆฌ ๋ฑ ํ์ผ ์์คํ ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง.
๊ฐ ํ์ผ์ ํ๋์ Inode๋ฅผ ๊ฐ์ง๊ณ , ์์ ์ ๊ทธ๋ฃน, ๊ถํ, ํ์ผ ํํ, Inode ์ซ์ ๋ฑ ํ์ผ์ ๊ดํ ์ ๋ณด๋ฅผ ๊ฐ์ง. inode์ ํ ๋น๋ ๊ณต๊ฐ์ ํ์ผ ์์คํ ์ ์ฒด์ 1% ์ ๋์. -
for i in /*; do echo $i; find $i |wc -l; done
: / ํํฐ์ ์ค ์ด๋ ๋ถ๋ถ์์ inodes๋ฅผ ๋ง์ด ์ฌ์ฉํ๋์ง ์ฒดํฌ -
for i in <ํด๋น path>; do echo $i; find $i |wc -l; done
: ํด๋น path์์ ์ด๋ ๋ถ๋ถ์์ inodes๋ฅผ ๋ง์ด ์ฌ์ฉํ๋์ง ์ฒดํฌ ๊ฐ๋ฅ
-
- ํด๋น ํด๋ ๋ด์์ ํ์์๋ ๋ถ๋ถ์ ์ญ์ ํ๊ฑฐ๋, ๋๋ ์ฉ๋์ด ํฐ ํด๋๋ก ์ด๋์ํค๋ ๋ฐฉ๋ฒ์ด ์์ โ
-
๊ฐ์๊ธฐ ์๋ฒ์์ go package ๋น๋ ์คํจํ๋ ์๋ฌ : Temporary failure in name resolution ...
- ์๋ฒ ์ธํ : nameserver๋ฅผ ์ฐพ์ง ๋ชปํด ๋ฐ์ํ๋ ์ด์
- root ๊ณ์ ์ผ๋ก ์ ์ ํ, nameserver ์ค์ ์ ์ถ๊ฐํด์ผ ํจ
vi /etc/resolv.conf
์ ๋ ฅํด์ ์ค์ ํ์ผ ์คํnameserver 8.8.8.8
์ถ๊ฐ ์ ๋ ฅnameserver 8.8.4.4
์ถ๊ฐ ์ ๋ ฅ
- ์ ๋ ฅ ํ, ์ ์ฅํ๋ฉด ์๋น์ค ์ฌ์์ ํ์์์ด ๋ฐ๋ก ์ ์ฉ๋จ
- ์๋ฒ ์ฌ๋ถํ ํ ๊ฒฝ์ฐ resolv.conf์ nameserver๊ฐ 127.0.0.1๋ก ์ด๊ธฐํ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค๊ณ ํ๋ค...
-
cgo ์ฝ๋ ๋น๋์ ๋ฐ์ํ๋ ์๋ฌ
/lib64/libstdc++.so.6: version 'CXXABI_1.3.8' not found
- /usr/lib64/libstdc++.so.6์ด ๊ฐ์ง๊ณ ์๋ CXXABI์ ๋ฒ์ ์ ํ์ธ
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
๋ช ๋ น์ด๋ฅผ ํตํด ํ์ธ ๊ฐ๋ฅ- ์ฐพ๊ณ ์๋ CXXABI_1.3.8์ด ์์ด์ ์ค๋ฅ๊ฐ ์๊ธด๊ฑธ๋ก ๋ณด์
- CXXABI_1.3.8์ด ์กด์ฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ bashrc์ ์ถ๊ฐ
strings /usr/local/lib64/libstdc++.so.6 | grep CXXABI
: CXXABI ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์กฐํnano ~/.bashrc
: nano ์๋ํฐ๋ฅผ ์ด์ฉํด์export LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
: LD_LIBRARY_PATH ์ค์
- ์ฐธ๊ณ ํ ๋ค๋ฅธ์ฌ๋์ ๋ธ๋ก๊ทธ๐โญ
- /usr/lib64/libstdc++.so.6์ด ๊ฐ์ง๊ณ ์๋ CXXABI์ ๋ฒ์ ์ ํ์ธ
์ฌ์ฉํ๋ ๊ฒ๋ค ์๊ฐ๋ ๋๋ง๋ค ๊ธฐ๋กํ์ ๐
-
linux ์ฌ์ฉ์ ๋ณ๊ฒฝ (CentOS)
- cli ํ๊ฒฝ์์
su - [user_name]
๋ช ๋ น์ด ์ ๋ ฅ
- cli ํ๊ฒฝ์์
-
๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ
- cli ํ๊ฒฝ์์
passwd
์ ๋ ฅ- ํ์ฌ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ํ, ๋ณ๊ฒฝํ ๋น๋ฐ๋ฒํธ ์ ๋ ฅํ๋ฉด ๋ โ
- cli ํ๊ฒฝ์์
-
ํ์ฌ ๋๋ ํ ๋ฆฌ ์ ๋ณด ์ถ๋ ฅ(print working directory)
- cli ํ๊ฒฝ์์
pwd
์ ๋ ฅ
- cli ํ๊ฒฝ์์
-
ํ์ผ ์์ฑ, ๋ ์ง ๋ณ๊ฒฝ
touch ,filename]
: ํ์ผ ์์ฑtouch -c [filename]
: ํ์ผ์ ๊ดํ ์๊ฐ์ ๋ณด๋ฅผ ํ์ฌ์๊ฐ์ผ๋ก ๋ณ๊ฒฝtouch -t YYYYMMDDhhmm [filename]
: ์๊ฐ์ ๋ณด๋ฅผ YYYYMMDDhhmm(๋ /์/์ผ/์/๋ถ)์ผ๋ก ๋ณ๊ฒฝ
-
์ฌ์ฉ์ ์ถ๊ฐ
sudo useradd -m [user_name]
: ์ฌ์ฉ์ ์ถ๊ฐsudo usermod -a -G sudo [user_name]
: ํด๋น ์ฌ์ฉ์๊ฐ sudo ๋ช ๋ น์ด ์ฌ์ฉํ ์ ์๋๋ก ๋ณ๊ฒฝ
-
์๋ฒ ์ฌ๋ถํ
reboot
: ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๊ณ ์ฌ๋ถํ
-
์์คํ ์ฌ๋ถํ
shutdown -r now
: ์ง๊ธ ์์คํ ์ฌ๋ถํ
-
์ญ์
rm <์ญ์ ํ ํ์ผ/ํด๋ ๋ฑ>
: ํด๋น ํ์ผ/ํด๋ ์ญ์ rm -r <์ญ์ ํ ํ์ผ/ํด๋ ๋ฑ>
: cannot remove 'ํด๋/ํ์ผ๋ช ' ์๋ฌ ๋ฐ์์ ์ต์ ๋ฃ์ด์ ๋ช ๋ น์ด ์ ๋ ฅ
-
usb ๋ง์ดํธ
fdisk -l
: ๋์คํฌ ์ ๋ณด ์ถ๋ ฅํ๋ ๋ช ๋ น์ด๋ฅผ ํตํด, usb ์ธ์๋์๋์ง ํ์ธ (usb์ ๊ฐ์ ์ฉ๋์ ๊ฐ์ง ์ ๋ณด ์ฐพ๊ธฐ)mount -t vfat <๋์คํฌ๋ช > <๋ง์ดํธํ ํด๋>
: usb์ ํด๋นํ๋ ๋์คํฌ๋ฅผ ํด๋น ํด๋์ ๋ง์ดํธ ์ํดumount <๋ง์ดํธํ ํด๋>
: ๋ง์ดํธ ํ ํด๋ umount
-
์์ถ/ํด์
tar -cvf <ํ์ผ๋ช .tar> <ํด๋๋ช >
: <ํด๋๋ช >์ <ํ์ผ๋ช .tar>์ผ๋ก ์์ถtar -zcvf <ํ์ผ๋ช .tar.gz> <ํด๋๋ช >
: <ํด๋๋ช >์ <ํ์ผ๋ช .tar.gz>์ผ๋ก ์์ถtar -xvf <ํ์ผ๋ช .tar>
: ํด๋น <ํ์ผ๋ช .tar>์ ์์ถํด์ tar -zxvf <ํ์ผ๋ช .tar.gz>
: ํด๋น <ํ์ผ๋ช .tar.gz>์ ์์ถํด์ - ์์ฃผ ์ฌ์ฉํ๋ ๋ช
๋ น์ด ์ต์
- -c : ํ์ผ์ tar๋ก ๋ฌถ์
- -p : ํ์ผ ๊ถํ ์ ์ฅ
- -v : ์์ถํ๊ฑฐ๋ ํด์ ํ ๋์ ๊ณผ์ ์ ํ๋ฉด์ผ๋ก ์ถ๋ ฅ
- -f : ํ์ผ ์ด๋ฆ ์ง์
- -C : ๊ฒฝ๋ก ์ง์
- -x : tar ์์ถํด์
- -z : gzip์ผ๋ก ์์ถ ๋๋ ํด์
-
๋ฐฉํ๋ฒฝ ํฌํธ ์ด๊ธฐ
firewall-cmd --permanent --zone=public --add-port=<์ํ๋ํฌํธ>/tcp
firewall-cmd --reload
- firewalld ์ค์น/์์/๋ฑ๋ก
yum install -y firewalld
systemctl unmask firewalld
systemctl enable firewalld
systemctl start firewalld
-
์คํ์ค์ธ ํ๋ก์ธ์ค์ ๊ดํ ๊ฒฝ๋ก ์ฐพ๊ธฐ
- ํ๋ก์ธ์ค ์ด๋ฆ ์ ๋ PID ์ฐพ๊ธฐ
ps -ef | grep <ํ๋ก์ธ์ค๋ช > | grep -v grep
- ํ๋ก์ธ์ค LISTEN ํฌํธ๋ฅผ ์ ๋ PID ์ฐพ๊ธฐ
netstat -ntap | grep LISTEN | grep <ํฌํธ๋ฒํธ>
- PID๋ก ํ๋ก์ธ์ค ์คํํ์ผ ๊ฒฝ๋ก ์ฐพ๊ธฐ
- `ls -al /proc/<ํ๋ก์ธ์ค ID> | grep exe
- ํ๋ก์ธ์ค ์ด๋ฆ ์ ๋ PID ์ฐพ๊ธฐ
ing...