'Server/Linux'에 해당되는 글 19건

  1. 2014.01.16 Linux /proc 디렉터리에 있는 정보 확인
  2. 2012.08.28 vi 에서 붙여넣기 할 때 탭이 깨지는 경우
  3. 2012.01.26 [Linux] top에서의 VIRT와 RES 2
  4. 2011.12.09 원격 장비의 MAC address (맥 어드레스) 확인하는 방법
  5. 2011.12.08 [TCP 설정] 리눅스에서 TCP 설정하기
  6. 2011.09.07 [id_rsa] ssh 서버에 쉽게 로그인하기
  7. 2011.07.27 [Linux] vi 에서 커서 이동이 잘 안되고, 이상한 문자가 찍힐때 로케일(locale) 수정방법
  8. 2010.12.03 [Linux] 리눅스 서버의 cached 된 메모리가 많을 때...
  9. 2010.04.04 [Filesystem] 파일 시스템 별 차이 위키
  10. 2010.03.12 [Linux 리눅스] 계정 추가 삭제 (사용자 추가 삭제)
  11. 2010.01.01 [linux] 커버로스(kerberos) 패스워드 변경 명령어. (kinit)
  12. 2009.11.04 [Linux] netstat와 wc 명령어를 사용하여 네트워크 상태 확인하기
  13. 2009.08.14 [IBM RedBooks] 리눅스 관련 성능 튜닝 가이드 라인
  14. 2009.08.11 [폴더 or 디렉토리 크기] 리눅스에서 특정 폴더 크기 확인하기
  15. 2009.06.12 [Linux] RSA 키가 바뀌었다는 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 메시지가 뜨면
  16. 2009.05.18 [리눅스] 리눅스에서 vi 나, 각종 메시지에서 한글이 깨질때 (리눅스 한글 변경)
  17. 2009.02.06 [리눅스] 자바 개발용 환경 세팅
  18. 2009.02.05 [리눅스 설치] Centos 설치시 관련 세팅
  19. 2008.08.08 [리눅스 USB] 리눅스(Linux)를 USB에 쉽게 설치해서 사용하기 1

리눅스의 /proc에는 시스템에 대한 많은 정보들을 제공한다.

특히 /proc 디렉터리에 있는 숫자로 된 디렉터리 안에는 각 프로세스의 정보를 상세히 제공한다. 여기서 숫자는 해당 프로세스의 아이디다. 

예를 들어 /proc/1 디렉터리에 들어가면 매우 많은 파일들이 존재하는 것을 볼 수 있다.

프로세스 정보 디렉터리에 존재하는 파일에 대한 정보가 잘 정리된 위키가 있어서 공유한다.

http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/proc/GetSMSInfo

이거 만드신 분 복받으실 꺼에요. (중간에 오타는 좀 보이지만, 그래도 ...)

Posted by tuning-java
,

가끔 vi에서 설정 파일을 열어서 웹에서 복사한 내용을 붙여넣기 할 때,
앞에 탭이 마음대로 추가되는 경우가 있다. 

이 경우 붙여넣기 전에 다음의 작업을 수행해 주면 된다고 한다. 

:set paste

이렇게 해놓고 편집모드에서 붙여 넣으면 깔끔하게 내용이 추가된다.
원상 복구하려면  

:set nopaste

명령을 실행하면 된다. 


이런 작업을 하고 싶지 않으면, 명령모드에서 

gg=G

라고 치면 자동으로 indent정렬을 해준다. 이클립스에서 Ctrl+Shift+F 누른거 처럼...


검색 관련 내용 

추가로 /를 사용하여 검색할 때,
:set hlsearch
를 지정해주면, 검색한 단어가 하이라이트 표시된다. 

그리고, / 자체가 검색을 나타내는 단축키이므로,
/deploy/tomcat을 조회하려면
/\/deploy\/tomcat
이렇게 조회하여야만 한다.

 

Posted by tuning-java
,

top이라는 명령어로 리눅스를 모니터링하다보면
VIRT 와 RES가 있는 것을 볼 수 있다. 


man top 에서 확인해 보니

VIRT  --  Virtual Image (kb)

          The total amount of virtual memory used by the task.  It includes all code, data and shared libraries plus pages that have been swapped out. (Note: you  can define the STATSIZE=1 environment variable and the VIRT will be calculated from the /proc/#/state VmSize field.)

          VIRT = SWAP + RES.


RES  --  Resident size (kb)

          The non-swapped physical memory a task has used.

          RES = CODE + DATA.


요렇게 나온다. 

결론적으로 해당 프로세스에서 물리적인 메모리를 사용하는 크기는 RES 이며,

SWAP 영역에서 사용하는 메모리 + shared + swapped를 합친것이 VIRT 다.


따라서 VIRT 값과 RES 값의 차이가 크다는 이야기는 SWAP 을 쓸 확률이 높다는 의미 인 것으로 보인다. 자바에서는 Shared 메모리의 크기가 그리 크지 않으므로, 만약 VIRT 만 크다면 SWAP 확인해 보고, 애플리케이션에서 도대체 무슨 일이 일어나는지를 잘 째려봐야 할 듯 하다.

어떻게 째려 봐야 할지는 좀 고민 해봐야 할 듯~~~ 

Posted by tuning-java
,
현재 사용하는 장비와 물려있는 네트워크 상의 장비에 대한 맥 어드레스를 확인할 일이 생겼는데, 알 방법이 없서 막막했다.
(맥 주소는 보통 16 진수의 조합으로 나타나는데, 해당 장비에서 제공한 맥 주소는 그냥 숫자로 나와서리 - -)

하지만, 구글링을 통해서 확인해 본 결과 다음의 명령어를 사용하면 된다.

arp -a

확인 결과 맥에서도 되고 윈도우에서도 된다. 그러나 리눅스에서는 안된다. (이것도 뭔가 있겠지? ㅎㅎ)
 
그런데, 그냥 숫자인 10진수로 나타나도 공학용 계산기로 16진수로 변환하면 동일하다는 것도 확인했다.  
Posted by tuning-java
,

 http://publib.boulder.ibm.com/wasce/V1.0.1/ko/Tasks/Tuning/Linux.html  
링크를 보면 TCP 설정을 어떻게 해야만 성능을 최적화 할 수 있는지 나와 있다.

timeout_timewait : TCP/IP가 닫힌 연결을 해제하여 자원을 다시 사용하기 전에 경과되어야 하는 시간은 
/proc/sys/net/ipv4/tcp_fin_timeout
파일에

tcp_keepalive_time : TCP/IP가 대기 연결이 계속 원래 상태를 유지하는지 확인을 시도하는 빈도 값은 
/proc/sys/net/ipv4/tcp_keepalive_time
파일에 (초 단위임)

tcp_keepalive_intvl : 상대로부터 활성화 상태 지속 응답이 수신되지 않을 경우 TCP/IP에서 활성화 상태 지속 전송을 반복하는 빈도 값은
/proc/sys/net/ipv4/tcp_keepalive_intvl
파일에

tcp_keepalive_probes : TCP/IP가 기존 연결에 대한 수신확인되지 않은 활성화 상태 지속 메시지를 재전송하는 횟수를 결정 값은
/proc/sys/net/ipv4/tcp_keepalive_probes
파일에 각각 선언되어 있다.  
 
Posted by tuning-java
,

http://blog.nextcube.pe.kr/entry/ssh-%EC%9D%B8%EC%A6%9D%ED%82%A4%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8

그리고, 아래 URL도 정리가 깔끔하게 잘 되어 있다. 

http://newstars.tistory.com/122


2012년 4월 13일 추가

여기서 중요한 것은 키의 권한인데.

맥OS를 사용하면 
.ssh 디렉터리는 chmod 700 .ssh
id_rsa 파일은 chmod 600 id_rsa 
로 권한을 지정해야 함. 

그렇지 않으면 

bad permissions : ignore key : 하면서 패스워드 물어봄. 




Posted by tuning-java
,
가끔 어떤 서버에 들어가서 작업할때 vi와 같은 에디터에서 
편집모드에서 커서 이동이 잘 안되고, 이상한 문자가 찍혀버릴때가 있다.
그런 경우에는 로케일이 한글로 되어 있을 확률이 높다.
따라서 콘솔 창에서

$  locale

이라고 쳐 보면 지역 정보가 어떻게 되어 있는지를 볼 수 있다.
어떤 로케일을 지원하는지 보려면,

$ locale -a

이라고 입력해보면 된다.
서버의 설정을 변경하지 않고,
지금 작업하고 있는 장비의 터미널창에서만 사용하는 로케일을 변경하려면

$ export LC_ALL=C

라고 지정하면, 모든 로케일을 C에 맞추어준다.

 나도 어깨너머로 배운거라서,
더 자세한것을 물어보면 모른다는 답변밖에~~~ ㅋㅋ 
Posted by tuning-java
,
free 라는 명령어를 사용하면 리눅스 서버의 메모리 사용량을 볼 수 있다.
여기에 -m옵션을 더하면 MB 단위로 데이터를 볼 수 있다.

만약 이 명령어를 사용했을 때 cached 메모리 크기가 몇기가일 경우,
매우 찜찜할 수도 있다.
따라서 이러한 경우엔 다음과 같은 명령어를 치면 된다.
(외쿡 아저씨들의 설명에는 아래의 sync명령어를 먼저 수행한 후 하라고 되어 있다.)

sync
echo 3 > /proc/sys/vm/drop_caches

이렇게 수행한 후 free -m 명령어를 수행해 보면,
cached 영역에 있는 메모리가 줄어든 것을 볼 수 있다.

관련 내용은 
를 참조하기 바란다.

Posted by tuning-java
,
http://en.wikipedia.org/wiki/Comparison_of_file_systems

파일시스템 별로 장단점과 차이점등이 잘 정리되어 있다.
Posted by tuning-java
,
계정 추가하기

useradd [userid]

계정 패스워드 지정하기

passwd [userid]
패스워드 입력1
패스워드 입력2
(두번 다 동일한 패스워드를 입력해야 함)

계정 삭제하기

userdel [userid]

계정 관련 파일들도 삭제하기

userdel -r [userid]

계정 그룹 삭제하기

groupdel [groupid]


Posted by tuning-java
,
보통 kinit을 통해서 커버로스 로그인을 수행한다.

매번 까먹을까봐 패스워드 변경 명령어를 적어놔야 겠다.

커버로스 패스워드 변경은 kpasswd 다.

Posted by tuning-java
,

netstat라는 명령어를 리눅스에서 사용하면,
네트워크의 상태를 볼 수 있다.

네트워크 상태를 진단할 때 매우 유용하게 사용할 수 있는데,
다음과 같이 사용하면 TIME_WAIT 상태인 연결들의 개수를 확인할 수 있다.
만약 연결된 개수를 확인하려면 grep 뒤에 CONNECTED로 바꾸면 된다.

netstat -n | grep TIME_WAIT | wc

여기서 netstat의 -n은 연결된 장비 이름이 IP 주소로 나타난다.
여기에 a 옵션을 추가하여 -an 이나 -na로 지정해 주면,
연결된 IP나 연결을 기다리는 장비의 IP와 함께 목록을 제공해준다.

추가로 wc 는 라인 및 단어의 개수를 제공하는 옵션이다.
wc만 쓸 경우
3 6 9
와 같이 3개의 숫자가 나타나는데,
가장 앞의 숫자는 라인수(여기서는 관련 연결 개수가 될 것이다.)
두번째는 단어 수,
세번째는 바이트 수를 의미한다.

라인수만 보고 싶을 때에는 -l
단어수만 보고 싶을 때에는 -w
바이트수만 보고 싶을 때에는 -c
옵션을 wc 뒤에 붙여주면 된다.



Posted by tuning-java
,
IBM의 RedBooks라는 사이트가 있다.
이 사이트에서는 여러 종류의 문서들을 제공해 주고 있는데,
그중 리눅스와 관련된 e-book(PDF 파일)들이 좋은게 있어서 링크를 걸어 둔다.

http://www.redbooks.ibm.com/Redbooks.nsf/portals/Linux?Open&page=popular


물론 무료이며,
리눅스쪽 관련 일을 한다면,
Linux Performance and Tuning Guidelines
http://www.redbooks.ibm.com/abstracts/redp4285.html?Open
를 읽어 보길 추천한다.
이 문서에는 다음과 같은 목차로 정리되어 있다.
Chapter 1, Understanding the Linux operating system
Chapter 2. Monitoring and benchmark tools
Chapter 3. Analyzing performance bottlenecks
Chapter 4. Tuning the operating system

난 아직 시간이 없어서 - -;

그리고,
나 같이 넷웍쪽 아는 정보가 별로 없다면,
TCP/IP Tutorial and Technical Overview
http://www.redbooks.ibm.com/abstracts/gg243376.html?Open
도 읽어 보면 많은 도움이 되리라 생각된다.
목차는 다음과 같다.

Part 1. Core TCP/IP protocols
Chapter 1. Architecture, history, standards, and trends
Chapter 2. Network interfaces
Chapter 3. Internetworking protocols
Chapter 4. Transport layer protocols
Chapter 5. Routing protocols
Chapter 6. IP multicast
Chapter 7. Mobile IP
Chapter 8. Quality of service
Chapter 9. IP version 6
Chapter 10. Wireless IP

Part 2. TCP/IP application protocols
Chapter 11. Application structure and programming interfaces
Chapter 12. Directory and naming protocols
Chapter 13. Remote execution and distributed computing
Chapter 14. File-related protocols
Chapter 15. Mail applications
Chapter 16. The Web
Chapter 17. Network management
Chapter 18. Wireless Application Protocol
Chapter 19. Presence over IP

Part 3. Advanced concepts and new technologies
Chapter 20. Voice over Internet Protocol
Chapter 21. Internet Protocol Television
Chapter 22. TCP/IP security
Chapter 23. Port based network access control
Chapter 24. Availability, scalability, and load balancing
Appendix A. Multiprotocol Label Switching






Posted by tuning-java
,
리눅스에서 어떤 폴더에 포함된 파일들의 크기를 확인하려면 du 라는 명령어를 사용하면 된다.
만약 aaa 라는 폴더에 여러개의 파일이 존재할 경우

du -h -s --apparent-size ./aaa/

라고 하면 해당 폴더가 갖고 있는 모든 파일의 크기만 보여준다.

여기서
-h: 바이트를 kb, mb 등으로 변환
-s: 지정한 폴더 크기만 출력(없으면, 하위 폴더 크기도 출력)
--apparent-size: 디스크 사용량이 아닌 apparent size를 출력(이게 뭔지 나도 잘 모름 - -)



Posted by tuning-java
,
http://www.cyberciti.biz/faq/warning-remote-host-identification-has-changed-error-and-solution/

동일한 IP 장비의 RSA키가 바뀌거나,
OS를 바꾸어서 rebooting 했을 경우
키가 변경되면 ssh로 쉽게 로그인하기가 어렵게된다.
이러한 경우에는 다음의 명령어를 수행하면된다.

ssh-keygen -R 서버IP
Posted by tuning-java
,
가끔 몇몇 리눅스 서버에서 한글이 깨지는 경우가 발생한다.
그럴 땐 다음과 같이 간단히 ~~~ 변경 가능하다.

/etc/sysconfig/i18n 파일을 vi로 연다.
사용언어가 아마도 UTF-8로 되어 있을 확률이 높은데,
LANG="ko_KR.UTF-8"
다음과 같이 변경하면 된다.
LANG="ko_KR.eucKR"

변경후 이 파일을 적용하기 위해서는,
다시 로그인을 하거나, bash 쉘을 수행하면 한글이 깨지지 않은 상태에서
리눅스를 사용할 수 있다.

PS: 이 설명은 CentOS에서 작동이 잘 되지만, 다른 리눅스에선 해보지 않아서 제가 확답을 드리긴 어렵네요. ^^:
Posted by tuning-java
,

리눅스 설치후 자바 개발용 세팅...

1. 자바 설치
   centos가 설치되면, 자바를 선택해서 설치할 수도 있는데, 버젼이 1.4다 - -;
   JDK 5.0이나 6.0 을 설치한 후 해당 경로를 프로파일에 등록한다.

   프로파일 수정은 계정 로그인 후 디렉토리에 존재하는 .bash_profile 파일을 변경하면 된다.
   유의사항 : jdkxxxx.bin파일을 수행한 위치에 jdk가 설치되므로, 압축이 해제될 위치에서 bin을 실행할 것.

2. eclipse 설치
   eclipse는 www.eclipse.org 사이트 들어가면, 자동으로 리눅스임을 인식하여 리눅스용을 다운 받을 수 있다
   이클립스 설치는 그리 어렵지 않으니(압축만 풀면 된다.

   그런데 만약 centos 5를 설치했다면 JVM exit code = -1 이 나타나면서 프로그램이 수행되지 않을 수도 있다. 그럴 경우 터미널에서 이클리브를 띄우면 다음과 같은 메시지가 나타날 수도 있다.

/jre/lib/i386/client/libjvm.so: reloc 후에 prot 세그먼트를 복구할 수 없습니다: 허가 거부됨

 이런 경우 SELinux 관련 옵션을 disable 해야 한다.

1. 다음 명령을 입력하여 로드한 라이브러리에 대한 기본 보안 컨텍스트를 변경
   이때 libjvm.so 가 있는 디렉토리로 이동해야함.
   chcon -t texrel_shlib_t *.so
2. /etc/selinux 의 config 파일에 다음 줄을 추가하여 SELinux를 비활성화.
   SELINUX=disabled


3. tomcat 설치
   tomcat도 다운로드해서 압축만 풀면 되므로, 그리 어렵지 않을 것이다.
   단지, catalina.sh에 JAVA_HOME 값을 지정하는 걸 잊지 말아야 한다.


Posted by tuning-java
,
centos 4를 맥북의 vmware에 깔았었다.

뭔가 개발하면서 확인하기 위해서 개발환경을 구축해 놨는데,
Flash 10 player를 설치하니 gblic 버젼이 낮다고 설치가 안된다.
이론 - -;
그래서 glibc 업그레이드를 하려고 했으나,
그작업은 리눅스를 모르면 절대 하지 말라는 글들이 많아서리... centos 5 를 설치했다.

centos를 그냥 깔면 gcc 나 개발용 환경이 구축되지 않으니,
아래 그림과 같이 추가 설치를 하는 것이 좋을 듯 하다.

<<개발용 도구 세팅 >>

<<시스템 도구 세팅>>

자바는 따로 선택 안해도 상호 연관성 체크후 깔리는 듯 하나,
버젼이 1.4 라는거~~~
자바는 되도록이면 직접 추가로 설치하는 것을 추천한다.


Posted by tuning-java
,
리눅스를 USB에 설치해서 사용할 수 있나?
그렇다, 리눅스에 설치해서 사용할 수 있다.

http://www.pendrivelinux.com
사이트에 접속을 하면, 여러 종류의 리눅스를 USB에 설치하는 방법을 제공한다.
뭐, 메뉴를 찾아갈 필요도 없고, 첫 페이지의 하단에, 펭귄 두마리가 있고, "USB Linux Installation Tutorials" 이하에 여러 링크가 있다.
(되도록이면 상단에 있는 태극기는 누르지 마세요. 해당 사이트를 구글 번역기로 돌린 한글이 나타나는데, 더 이해가 안될꺼에요.)

여기서 원하는 리눅스 OS를 선택해서 거기에 있는 가이드대로 따라하면 된다.

굉장히 쉬운(?) 영어로 되어 있으니 궂이 번역은 안해놓겠다.
(IT하시는 분들 영어 잘 하시잖아요. 모든 사용하는 용어가 영어니... ㅋㅋ)

언제 쓰냐구요?
- PC가 맛갔는데 PC에 있는 파일들이 급하게 필요할 때
- 보안툴을 깔았는데 뭔가를 해야 할때
- PC가 바이러스에 걸렸을 때

그래도 한번 만들어 놓으면, 언젠간 필요한 날이 올꺼에요.

세상 정말 좋아졌습니다.
Posted by tuning-java
,