반응형

vi 명령어를 통해 에디터로 접근했는데, 한글 깨짐 현상이 있을 경우 해별 방법입니다. 

 

 

/etc/vim/vimrc

 

파일을 수정하시면됩니다.

 

 

/etc/vim/vimrc 파일에 아래의 2줄을 추가하면 됩니다.

 

set encoding=utf-8

set fileencodings=utf-8,cp949

 

 

오늘도 삽질 최소화 기원합니다.   ^^ 

반응형
반응형

 

traceroute 명령어는... 

리눅스 호스트 서버에서 타겟 서버까지 라우팅 되는 ip를 확인하는 명령어입니다. 

 

윈도우에서는 tracert라는 명령어가 있죠?? 

 

아래 명령어로 우분투에서 traceroute 설치를 한번 해 보시죠. 

apt-get update
apt-get install traceroute

 

설치 후 사용하는 방법입니다. 

traceroute {target ip}
traceroute 172.17.0.1

위 명령어를 사용하면 라우팅되는 ip 정보를 식별 할 수 있을겁니다. 

 

오늘도...  막힘없이 즐 코딩 되세요~~ 

반응형
반응형

netcat은 

리눅스 호스트 서버에서 외부 타겟 서버로 방화벽이 open되어 있어서 정상적으로 타겟서버와 연동이 가능한지 확인하는 명령어 입니다. 

DB, 응용 App, 필요 데이터 연동 등...    다양한 사용 방법으로 서버간의 연동이 필요하죠. 

 

우분투에서 아래 명령어로 설치하는 방법입니다. 

내부망이라면 관련 패키지를 외부에서 받아서 설치해야 겠죠? 

 

아래는 인터넷 환경에서 설치하는 방법입니다. 

apt-get update
apt-get install netcat

 

아래의 방법으로 ip, port 개방 정보를 확인 할 수 있습니다. 

nc -vz {ip} {port} 

nc -vz 172.17.0.1 1521

위 명령어 실행 시 정상적으로 Open 되어 있으면 성공 메시지가 출력되며

방화벽이 막혀 있거나 회선 문제이거나 하면 에러 메시지를 출력합니다. 

 

nc 명령어로 방화벽이 잘 열려있는지 테스트 해보러 가시죠~~ 

 

반응형
반응형

리눅스 유형별로 python-dev 설치 관련 가이드입니다.  

 

For apt (Ubuntu, Debian...):

sudo apt-get install python-dev   # for python2.x installs
sudo apt-get install python3-dev  # for python3.x installs

For yum (CentOS, RHEL...):

sudo yum install python-devel    # for python2.x installs
sudo yum install python3-devel   # for python3.x installs

For dnf (Fedora...):

sudo dnf install python2-devel  # for python2.x installs
sudo dnf install python3-devel  # for python3.x installs

For zypper (openSUSE...):

sudo zypper in python-devel   # for python2.x installs
sudo zypper in python3-devel  # for python3.x installs

For apk (Alpine...):

# This is a departure from the normal Alpine naming
# scheme, which uses py2- and py3- prefixes
sudo apk add python2-dev  # for python2.x installs
sudo apk add python3-dev  # for python3.x installs

For apt-cyg (Cygwin...):

apt-cyg install python-devel   # for python2.x installs
apt-cyg install python3-devel  # for python3.x installs
반응형
반응형

 

원격 maven repository에서 파일들을 전체 다운로드 받을 일이 생겼습니다. 

내부 nexus 등의 repository에 일괄 업로드해서 내부망에서 사용하기 위해서인데요. 

 

아래 이미지와 같은 원격 maven repository에 있는 전체 폴더, 파일을 일괄 다운로드 하는 방법을 알아 보겠습니다. 

 

리눅스에서 lftp 명령어를 사용해서 일괄 다운로드하겠습니다. lftp 관련된 명령어나 사용법은 많으니 검색해 보시고요. 

먼저, 리눅스에서 lftp를 설치합니다.  

 

centos인 경우는...  아래 명령어를 통해 install 합니다.   우분투나 다른 리눅스 관련 명령어로 install하시면 됩니다. 

$ sudo yum install lftp 

 

install이 되었으면 url의 경로에서 전체를 다운로드 하고자 하는 폴더를 생성 후 이동합니다. 

mkdir linkedin 

cd linkedin 

 

폴더 이동 후 lftp 명령어를 통해 url에 접속합니다. 

lftp https://packages.confluent.io/maven  

 

정상 접속이 되시면 아래와 같은 메시지가 로딩 됩니다. 

 

정상 접속후에 아래의 명령어를 순차적으로 작성하시면 centos의 생성한 폴더로 다운로드가 됩니다. 

파일을 전체 받아오려니 시간이 좀 걸리겠죠? 

 

set ftp:ssl-allow false
set ftp:passive-mode off
set ssl:verify-certificate no

mirror

 

아래 명령어를 사용하시면 병렬 처리로 속도가 조금 더 빠를 수 있습니다. 

mirror -c --parallel=10

 

구글링을 좀 하다가 찾아낸 방법인데요. 

필요하신 분은 이 방법을 통해 구글링하는 시간을 조금 줄였으면 좋겠습니다. 

 

 

참고 사이트 : https://serverok.in/download-all-files-from-ftp-server-using-lftp

 

반응형
반응형

아래 명령어를 통해 사용자 패스워드를 변경합니다. 

passwd <user> 

 

 

반응형
반응형

/bin

/bin에는 실행 명령어들이 모여 있습니다. 대부분의 사용자가 실행 가능한 것들이며 우리가 사용하는 기본 명령어들이 담겨 있습니다. cat, chmod, chown, cp, date, echo, kill, ln, ls, mkdir, more, mount, mv, ps, pwd, rm, sh, su, vi 등이 있습니다. 

/boot

말 그대로 시스템 부팅에 관련된 모든 파일을 담고 있습니다. lilo(LInux LOader)의 설정 파일은 /etc/lilo.conf 에 있으며, lilo 자체는 명령어로서 /sbin/lilo에 위치하고 있습니다. 커널 이미지인 vmlinuz 가 위치하고 있으며, lilo 가 아닌 다른 부트로더 프로그램들 모두가 공통적으로 vmlinuz 를 이용해 시스템을 부팅하므로 중요한 디렉토리임을 알 수 있습니다. 이 디렉토리의 파일들은 직접 편집할 수 없으며 커널 컴파일 등의 과정으로부터 생성이 됩니다.

/dev

각종 디바이스 파일들이 위치해 있는데 크게 블록 디바이스와 캐릭터 디바이스로 나뉠 수 있습니다. 블록 디바이스란 HDD와 같은 주변 장치를 말하는데, 데이타가 블록 단위로 읽고 쓰여지며 랜덤하게 액세스할 수 있습니다. 반면 캐릭터 디바이스는 입출력이 한 바이트 단위로 이루어지며 데이터가 순차적으로 읽고 쓰여집니다. 디바이스를 새로 만들 때에는 mknod 명령을 이용하면 되며, /bin 에 위치해 있습니다. 

/etc

시스템 설정 파일들이 모여 있습니다. 시스템을 백업하고자 할 때는 꼭 이 디렉토리를 가장 먼저 백업해야 합니다. 각 파일들에 대한 설명은 에디터로 파일을 열어보면 주석처리로 설명이 되어 있으며, 필요 시 참고하시면 됩니다.

/etc/(cshrc.login, cshrc.cshrc, profile)

bash 나 csh,tcsh 사용자가 로그인할 때 기본으로 읽어들여 초기화시키는 파일입니다. 모든 사용자에게 공통으로 적용할 쉘 관련 사항이 있다면 이 파일들을 수정하면 됩니다. 각 사용자들은 자신의 홈 디렉토리에 개별 설정 파일이 있으므로 역시 원하는 대로 설정할 수 있습니다.

/etc/fstab

시스템 부팅시 처리되는 마운트와 관련한 사항들이 기록되어 있습니다.

/etc/group

사용자 그룹이 정의되어 있습니다.

 

/etc/issue

시스템에 로그인할 때 나타나는 'login:' 위에 나타나는 메시지입니다. 로그인할 때 나타나는 메시지를 바꾸고 싶으면 /etc/rc.d/rc.local 파일의 맨 아래 부분에 #로 시작되는 주석을 참고하시면 됩니다.

/etc/motd

'message of the day'의 약자로 로그인 직후의 메세지를 담고 있습니다. 관리자가 공지를 띄우는 데 유용한 파일입니다.

/etc/passwd

사용자들의 계정 정보와 패스워드, 홈 디렉토리에 대한 정보를 담고 있으며 다음과 같은 형식으로 쓰여져 있습니다

/etc/shadow

쉐도우 패스워드 파일입니다. 

/home

사용자들의 모든 홈 디렉토리에 해당됩니다. 사용자 계정이 생성되면 이 경로에 해당 계정이 생성됩니다.

/lib

공유 라이브러리와 커널 모듈들이 담겨있다. 이전에 짚고 넘어간 /bin과 /sbin디렉토리에 있는 실행 명령어들이 실행될 때 필요한 공유 라이브러리들이 존재한다.

/mnt

마운트 시 사용합니다. 마운트 디렉토리로써 여기에서 마운트해야 하는 것은 아니지만, 대부분 이 경로에서 마운트를 진행합니다. 

/proc

일종의 가상 파일 시스템으로 메모리 정보만을 담고 있다. 우리가 흔히 사용하는 ps 프로그램이 여기에서 프로세스 정보 등을 참조한다.

/root

Suber User인 root 계정의 홈 디렉토리입니다. 

/sbin

수퍼 유저가 사용하는 실행 명령어들이 대부분이 있습니다. 그러므로 물론 일반 유저는 사용할 수 없습니다. reboot, halt, mkfs, fdisk등이 있습니다.

/tmp

임시 디렉토리입니다. 임시 파일들의 일시적 저장 역할을 합니다.

/usr

/usr 은 리눅스 시스템에서 용량을 많이 차지하는 부분으로 대부분의 프로그램들은 이곳에 설치됩니다.

/usr/X11R6

/usr/X11, /usr/X386 이 모두 /usr/X11R6 의 심볼릭 링크입니다. /usr/X11R6/lib/X11 에는 X-윈도와 관련한 여러가지 파일 및 디렉토리가 있습니다.

/usr/bin

/bin 에서 짐작되듯이, 대부분의 사용자 실행 명령어들이 담겨 있습니다. gcc나 perl등의 개발도구도 여기에 담겨 있습니다.

/usr/doc

역시 doc에서 유추할 수 있듯이 각종 리눅스에 관한 문서들이 있습니다.

/usr/include

C, C++ 프로그램의 헤더 파일들이 담겨 있습니다.

/usr/info

여기에는 여러가지 GNU 프로그램들(gcc, make, autoconf...)의 info 파일들이 담겨 있습니다. 이 디렉토리를 이용하는 방법은 단순히 'info 프로그램 - ex) info gcc -'라고 치면 됩니다. 필요 시 사용하시면 됩니다.

/usr/local

새로운 프로그램들이 설치되는 곳으로 프로그램 관리를 용이하게 할 수 있도록 되어 있습니다. make install로 프로그램 설치시 기본 디렉토리가 대부분 /usr/local 로 되어 있는 이유가 바로 그것이다.

/usr/man

info 와 비슷한 역할을 합니다. 메뉴얼 페이지가 담겨 있는 것으로 역시 'man 프로그램'을 쳐서 이용할 수 있습니다.

/usr/src

프로그램 소스들이 보관되어 있는 것으로 리눅스 커널이 위치하고 있는 곳입니다.

/var

이 디렉토리 아래에는 시스템 작동 중 변경되는 파일들이 담겨 있습니다. 스풀 파일이나 로그 파일들이인데, 다른 시스템과 공유가 되지 않음을 의미합니다.

반응형
반응형

리눅스에서는 운영 중인 프로세스를 특정 시점에 종료 할 필요가 있을 수 있습니다. 리눅스에서 개발 및 테스트를 하다 보면 프로그램 재시작, lock, 생성한 코드 테스트 등의 이유들로 강제 종료를 하게 되는데요. 프로세스 강제 종료시에는 실수로 다른 프로세스를 종료하거나 의존관계가 있는 프로세스가 있어서 상당히 조심해야 합니다. 운영서버에서는 실수로 다른 프로세스를 종료하면 큰 문제가 발생하기도 하지죠. 테스트 서버도 그렇지만 항상 두세번 이상 주의 깊게 확인 하시고 프로세스 종료 명령어를 사용해야 합니다. 

 

프로세스 종료는 kill 명령어를 사용 하는데요.  

명령어는 다음과 같습니다. 

 

kill -9 'PID'     

 

'-9' 옵션은 강제 종료 옵션이고, PID는 ps 명령어로 실행 했을때 조회되는 프로세스 ID로 숫자 입니다. 

PID를 확인하기 위해서는 아래와 grep 명령로 프로세스들의 범위를 좁힐수도 있습니다.  

ps -ef | grep java 

 

프로세스 상태 조회 시는 ps -ef 옵션을 많이 사용하는데요.  자주 사용되는 옵션으론 다음의 것들이 있습니다. 

  •  -l : 자세한 형태로 정보를 출력 
  •  -e : 모든 프로세스를 출력 
  •  -f : 정보에 대해 출력 

또한, 프로그램 시작 후에 종료하기 위해 shell script를 사용해서 shutdown.sh와 같은 shell을 만들 수 있는데요. 

그때는 프로세스를 grep해서 종료해야 합니다.  

아래 명령어를 응용하셔서 shell에 등록해서 사용할 수도 있습니다.

kill $(ps aux | grep '<your flask-app>' | awk '{print $2}')

 

프로세스 종료 shell script 예시) 

PID=`ps -eaf | grep syncapp | grep -v grep | awk '{print $2}'`
if [[ "" !=  "$PID" ]]; then
  echo "killing $PID"
  kill -9 $PID
fi

 

 

반응형

+ Recent posts