echo 3 > /proc/sys/vm/drop_caches
crontab 으로 주기적으로 청소해주는 방법도 괜찮을듯..ㅎㅎ
리눅스 위키 – http://ko.wikipedia.org/wiki/리눅스
crontab 으로 주기적으로 청소해주는 방법도 괜찮을듯..ㅎㅎ
ps -ef --sort -rss
[root@zetawiki ~]# ps -ef --sort -rss
UID PID PPID C STIME TTY TIME CMD
mysql 1154 1064 99 May03 ? 213287-12:54:30 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --l
apache 26245 1202 0 03:48 ? 00:00:05 /usr/sbin/httpd
apache 26247 1202 0 03:48 ? 00:00:07 /usr/sbin/httpd
... (생략)
root 741 2 0 May03 ? 00:00:00 [kmpath_handlerd]
root 768 2 0 May03 ? 00:00:00 [kjournald]
→ /usr/libexec/mysqld 프로세스가 물리 메모리를 가장 많이 점유하고 있다.
ps -ef --sort -rss | head -n 11
ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 11
[root@zetawiki ~]# ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 11
USER PID PPID RSS SZ VSZ %MEM %CPU TIME CMD
mysql 1154 1064 26116 582252 642724 4.8 6623646 213287-12:54:31 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
apache 26245 1202 24284 18320 347196 4.5 0.0 00:00:05 /usr/sbin/httpd
apache 26247 1202 23780 17824 346700 4.4 0.0 00:00:07 /usr/sbin/httpd
apache 26248 1202 23632 17048 345924 4.4 0.0 00:00:05 /usr/sbin/httpd
apache 26242 1202 23112 18080 342768 4.3 0.0 00:00:06 /usr/sbin/httpd
apache 26249 1202 23100 18076 342764 4.3 0.0 00:00:06 /usr/sbin/httpd
apache 26692 1202 23084 18084 342772 4.3 0.0 00:00:03 /usr/sbin/httpd
apache 26244 1202 22844 17828 342516 4.2 0.0 00:00:06 /usr/sbin/httpd
apache 26243 1202 22832 17828 342516 4.2 0.0 00:00:08 /usr/sbin/httpd
apache 26693 1202 22832 17820 342508 4.2 0.0 00:00:04 /usr/sbin/httpd
→ /usr/libexec/mysqld 프로세스가 물리 메모리를 가장 많이 점유하고 있으며 그 용량은 26116KB이다.
프로세스 수행명령어에서 인수부분을 표시하지 않으려면 cmd를 comm으로 변경하면 된다.
ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -rss | head -n 11
[root@zetawiki ~]# ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -rss | head -n 11
USER PID PPID RSS SZ VSZ %MEM %CPU TIME COMMAND
mysql 1154 1064 26116 582252 642724 4.8 6624384 213287-12:54:31 mysqld
apache 26245 1202 24284 18320 347196 4.5 0.0 00:00:05 httpd
apache 26247 1202 23780 17824 346700 4.4 0.0 00:00:07 httpd
apache 26248 1202 23632 17048 345924 4.4 0.0 00:00:05 httpd
apache 26242 1202 23112 18080 342768 4.3 0.0 00:00:06 httpd
apache 26249 1202 23100 18076 342764 4.3 0.0 00:00:06 httpd
apache 26692 1202 23084 18084 342772 4.3 0.0 00:00:03 httpd
apache 26244 1202 22844 17828 342516 4.2 0.0 00:00:06 httpd
apache 26243 1202 22832 17828 342516 4.2 0.0 00:00:08 httpd
apache 26693 1202 22832 17820 342508 4.2 0.0 00:00:04 httpd
UTF-8 한글로 설정하기 위해서 다음과 같은 명령어를 실행하면 됩니다.
1
|
$ sudo locale-gen ko_KR.UTF-8 |
이렇게 명령을 실행하고 확인을 했는데 LANGUAGE 값이 바뀌지 않아서 다음 파일을 수정했습니다. 이부분은 참고만 하세요! 제 경우에만 해당될 수도 있습니다.
1
2
3
|
$ sudo vi /etc/default/locale LANG= "ko_KR.UTF-8" LANGUAGE= "ko_KR:ko:en_US:en" |
그리고 다음 명령으로 설정된 것을 확인하면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$ locale LANG=ko_KR.UTF-8 LANGUAGE=ko_KR:ko:en_US:en LC_CTYPE= "ko_KR.UTF-8" LC_NUMERIC= "ko_KR.UTF-8" LC_TIME= "ko_KR.UTF-8" LC_COLLATE= "ko_KR.UTF-8" LC_MONETARY= "ko_KR.UTF-8" LC_MESSAGES= "ko_KR.UTF-8" LC_PAPER= "ko_KR.UTF-8" LC_NAME= "ko_KR.UTF-8" LC_ADDRESS= "ko_KR.UTF-8" LC_TELEPHONE= "ko_KR.UTF-8" LC_MEASUREMENT= "ko_KR.UTF-8" LC_IDENTIFICATION= "ko_KR.UTF-8" LC_ALL= |
arg-cpu
|
%user
|
%nice
|
%system
|
%iowait
|
%steal
|
%idle
|
---|---|---|---|---|---|---|
마지막 재부팅 이후의 평균 CPU 활용량 | 어플리케이션 등 사용자 모드에 소모된 시간 | nice를 사용하여 스케줄링 우선순위가 바뀐 프로세스에 소모된 시간 | 시스템(커널)이 사용한 시간 | 디스크I/O 요청 때문에 CPU가 대기한 시간 | 다른 가상 CPU가 서비스하는 동안 비자발적으로 대기한 시간 | 대기한 시간 |
Device
|
tps
|
kB_read/s
|
kB_wrtn/s
|
kB_read
|
kB_wrtn
|
---|---|---|---|---|---|
디바이스 구분 | 초당 전송(입출력) 수 | 초당 읽혀진 KB (Blk일 경우 512바이트 블록수) | 초당 쓰여진 KB (Blk일 경우 512바이트 블록수) | 지금까지 읽혀진 KB(Blk일 경우 512바이트 블록수) | 지금까지 쓰여진 KB(Blk일 경우 512바이트 블록수) |
procs | memory | swap | io | system | cpu | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
r | b | w | swpd | free | buff | cache | si | so | bi | bo | in | cs | us | sy | id | wa |
현재 실행중인 프로세스의 수(CPU 접근 대기 중인 실행 가능 프로세스 수) | 인터럽트가 불가능한 sleep 상태에 있는 프로세스의 수 (I/O 처리를 하는 동안 블럭 처리된 프로세스) | 강제로 스왑아웃된 프로세스 | 사용하고 있는 swap 메모리 양(사용된 가상 메모리 용량) | 사용가능한 메모리 양 | 버퍼로 사용되고 있는 메모리 양 | 캐시로 사용되고 있는 메모리 양 | swap in(디스크에서 메모리로 스왑된 메모리 용량) | swap out(디스크로 스왑되어 나간 메모리 용량) | 초당 블럭 디바이스로 보내는 블럭 수(블록 장치로 보내진 블록) | 초당 블럭 디바이스로부터 받은 블럭 수(블록 장치에서 받아온 블록) | 초당 인터럽트 되는 양 | 초당 context switch되는 양 | 사용자의 CPU 사용 시간 비율(CPU가 사용자 수준 코드를 실행한 시간, 백분율 단위) | 시스템의 CPU 사용 시간 비율(CPU가 시스템 수준 코드를 실행한 시간, 백분율 단위) | CPU idle time(백분율 단위) | 입출력 대기 |
PID
|
USER
|
PR
|
NI
|
VIRT
|
RES
|
SHR
|
S
|
%CPU
|
%MEM
|
TIME+
|
COMMAND
|
---|---|---|---|---|---|---|---|---|---|---|---|
프로세스 ID | 프로세스를 실행시킨 사용자 ID | 프로세스의 우선순위 | NICE 값 | 가상 메모리의 사용량(SWAP+RES) | 현재 페이지가 상주하고 있는 크기(Resident Size) | 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리의 총합 | 프로세스의 상태(Sleeping, Running, sWapped out process, Zombies) | 프로세스가 사용하는 CPU의 사용율 | 프로세스가 사용하는 메모리의 사용율 | CPU TIME, hundredths | 실행된 명령어 |
total
|
used
|
free
|
shared
|
buffers
|
cached
|
---|---|---|---|---|---|
전체 메모리의 용량으 Kbyte단위(default)로 표시 | 현재 시스템에서 사용중인 메모리의 량을 Kbyte 단위로 표시 | 현재 시스템에서 사용중이지 않은 메모리의 량을 Kbyte단위로 표시 | 현재 시스템에서 공유한 메모리의 용량을 표시 | 현재 시스템에서 buffering된 메모리의 량을 표시 | 현재 시스템에서 caching된 ㅣ메모리의 량을 표시 |
total
|
used
|
free
|
---|---|---|
시스템의 전체 스왑메모리의 량을 표시 | 전체 스왑메모리 중에서 현재 사용중인 스왑메모리의 량을 표시 | 전체 스왑메모리중에서 사용되지 않고 남아 있는 메모리의 량 |
TID | PRIO | USER | DISK READ | DISK WRITE | SWAPIN | IO | COMMAND |
---|
CPU – perf, top, htop
Memory – valgrind, smem
Disk I/O – nmon, bonnie, sysstat
Network – netperf, iftop, netstat
df (disk free) : 리눅스에 연결되어 있는 디스크의 남은 공간을 보여준다.
[사용법]
df [Option] [FileSystem | File]
* Option
– k : Kilobyte 단위
-m : Megabyte 단위
[예제]
‘df -k’ : Kilobyte 단위로 현재 마운트된 파티션들의 남은 공간을 보여준다.
‘df -m’ : Megabyte 단위로 현재 마운트된 파티션들의 남은 공간을 보여준다.
‘df .’ : 현재 디렉토리가 포함된 파티션의 남은 공간을 보여준다.
du : 특정 디렉토리에서 하부디렉토리까지 포함한 디스크의 사용량을 보여준다.
[사용법]
du [Option] [Files]
* Option
-a : 디렉토리에 있는 파일 하나하나의 크기를 출력한다.
-s : 총 사용량만 표시한다.
-k : KiloByte 단위로 표시한다.
-h : 용량을 사람이 보기 가장 좋게 표시한다.
[예제]
‘du -a’ : 현재 디렉토리의 디스크 사용량을 파일단위로 모두 출력한다.
‘du -s *’ : 현재 디렉토리의 첫번째 단계까지만 디스크의 사용량을 출력한다.
‘du -h –max-depth=0 *’ 와 동일
‘du -h –max-depth=1 . ‘
–max-depth=1 은 현재 폴더에서 깊이가 1 즉 현재 폴더 내의 파일에 대해서만 용량 표시
. 은 현재 폴더
root 폴더 사용량을 확인한다면…
[명령]
‘du -h –max-depth=0 /root’ or ‘du -sh /root’
[결과]
4.1G root
vi 텍스트 찾기와 바꾸기 명령어를 인터넷에서 검색해 보았습니다. 하도 산재되어 있어서 한 군데로 모은 것입니다.
1. 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다.
:%s/char/_&_/g
2. 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다.
:.,$s/char/_&_/g
3. buf_.*[255], buf_in[255], buf_get[255] 와 같은 문자열을 hello 로 변경한다.
:1,10s/buf_.*\[255\]/hello/g
4. 숫자로만 이루어진 행 찾기는 다음과 같습니다.
/^\d\+$
^ : 행의 첫부분
\d : 0~9까지의 숫자
+ : 바로 앞의 글자 (여기서는 숫자)가 1개나 1개 이상 있음. (즉 숫자가 최소한 1개 있음)
$ : 행의 마지막 부분
5. 전체 문서에서 add 를 plus로 치환
:s/add/plus/g
6. 현재 편집중인 전체 문서에서 /etc/ 를 /etc/local/ 로 치환
:s/\/etc\//\/etc\/local\//g
7. ‘앗싸좋구나108계단’ 이 ‘좋구나108계단앗싸’ 로 바뀝니다.
:%s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g
8. 대소문자 구분없이 바꾸려면 i 옵션을 붙입니다. 이것은 “.vimrc” 파일을 고치지 않아도 작동합니다.
:%s/foo/bar/i
9. 정확하게 foo에 일치될 때만 바꿉니다. 즉 foo는 바꾸지만, foo 앞뒤로 다른 문자열이 붙어 있는 경우에는 바꾸지 않습니다.
:%s/\/bar
10. 정렬
123 def ghi
432 ius dkf
089 cdo lks
이걸 숫자를 가운데로, 두번째는 끝, 세번째 처음으로 보내려면
:%s/\([0-9]*\) \([a-z]*\) \([a-z]*\)/\3 \2 \1/g
11. 만약 3~5자리로 이루어진 모든 숫자를 검색하고 싶다면 다음과 같이 입력한다.
/[0123456789]\{3,5\} 또는
/[0-9]\{3,5\}
12. 만약 `ab’로 시작하는 소문자로 되어 있는 모든 단어를 삭제하려면 다음과 같이 입력한다.
:%s/ab[a-z]*//g
13. 만약 test라는 파일에 cpu가 들어있는 라인을 모조리 지우고자 한다면 vi mode에서 아래와 같이 사용한다.
:g/cpu/d
# g는 모든 라인에 적용한다라는 의미이고,
# d는 delete를 의미합니다.
14. stat0,stat1…..stat9 패턴이 있는 라인을 모조리 지우기
:g/stat[0-9]/d
15. 빈 줄 두 줄을 한 줄로 바꾸기
:%s/\n\n/\n/g
16. 두 칸을 한 칸으로 줄이기
:%s/ / /g
17. 탭을 스페이스 공백으로 바꾸기
:%s/\t/ /g
18. 마지막에 한 칸 띠우고 엔터된 것을 바로 엔터한 것으로 고치기
:%s/ $//g 또는
:%s/ \n/\n/g
19. 줄 첫 칸의 띠어쓰기를 없애기
:%s/^ //g
20. 잘못 바꾸기를 했을 때 되돌리려면 그냥 u 키를 누르면 됩니다.
NAME last, lastb – 사용자들의 마지막 로그인했는 기록 목록을 보여준다. SYNOPSIS last [-R] [-num] [ -n num ] [-adx] [ -f file ] [name…] [tty…] lastb [-R] [-num] [ -n num ] [ -f file ] [-adx] [name…] [tty…] DESCRIPTION Last 명령은 /var/log/wtmp 파일이나, -f 옵션에서 지정한 파일을 통해서 사용자의 로그인, 로그아웃 시간을 보여준다. 특정 사용자의 이름이나, tty를 지정할 수 있으며, 이렇게 지정되면, 해당 사용자의 로그인 정보만을 보여준다. tty의 이름은 생략될 수 있어, last 0 명령은 last tty0 명령과 같은 기능을 한다. last가 실행 중에 SIGINT(인터럽트 글쇠, 주로 Ctrl-C에 의해서 만들어지는 신호)가 감지되거나, SIGQUIT(마침 글쇠, 주로 Ctrl-에 의해서 만들어지는 신호)가 감지되면, 실행을 마친다. 접속 사용자 이름에 reboot라고 나오는 것은 시스템이 reboot된 것을 나타낸다. 즉 last reboot 명령으로 기록 파일이 만들어진 후부터 reboot 되었는 기록을 모두 볼 수 있다. Lastb 명령은 접속 실패를 기록하는 파일인 /var/log/btmp 파일을 대상으로 한다는 것을 제외하고는 last 명령과 같다. OPTIONS -num num 만큼의 줄만 보여준다. -n num 윗 기능과 같음. -R hostname 필드를 보여주지 않음. -a hostname 필드를 마지막에 보여줌. 이 옵션은 다음 옵션과 함께 요용하게 쓰임. -d 다른 호스트에서 접속한 것만 보여줌. -x shutdown이 일어난 상태나, run level이 바뀐 상태도 보여줌. NOTES wtmp 파일이나, btmp 파일이 없을 수도 있다. 시스템은 이런 파일이 있을 경우에만, 로그인 정보를 그 파일에 기록한다. 만약 없는데, 이제부터 last 명령을 사용하고 싶다면, 단지 간단하게 touch 명령을 사용해서 각 파일을 만들어 놓으면 된다. (예를 들면, touch /var/log/wtmp). AUTHOR Miquel van Smoorenburg, miquels@cistron.nl SEE ALSO shutdown(8), login(1), init(8) |
아파치 서버 시작시에 wrong ELF class: ELFCLASS32 와 같은 오류 메시지가 보인다면..
관련 모듈을 서버에 맞게 32비트 혹은 64비트로 갖다놓아야한다.
리눅스 서버 정보 확인하려면 uanme -a 명령어 사용하면 된다.
ls 명령어의 파일 사이즈 쉽게 확인하기
ls 의 스위치 옵션 -h (–human-readable) 를 이용하면 KB/MB/GB 단위로 쉽게 파일 사이즈 확인이 가능하다.
[HOSTWAY] /home > # ls -alh
total 312G
drwxr-xr-x. 6 root root 4.0K Oct 22 23:16 .
drwxrwxrwt 25 root root 4.0K Oct 22 09:36 ..
-rw-r–r– 1 root root 98G Oct 23 13:07 100GB_LUN01
-rw-r–r– 1 root root 200G Oct 23 13:07 200GB_LUN01
drwx——. 2 root root 16K Oct 13 2011 lost+found
drwxr-xr-x 3 root root 4.0K Feb 28 2012 svn
-rw-r–r– 1 root root 9.8G Nov 11 2011 SWAP_FILE
또한, -S 스위치 옵션을 사용하면, 사이즈로 descending 정렬이 가능하다.
[HOSTWAY] /home > # ls -alSh
total 312G
-rw-r–r– 1 root root 200G Oct 23 13:07 200GB_LUN01
-rw-r–r– 1 root root 98G Oct 23 13:07 100GB_LUN01
-rw-r–r– 1 root root 9.8G Nov 11 2011 SWAP_FILE
drwx——. 2 root root 16K Oct 13 2011 lost+found
drwxr-xr-x. 6 root root 4.0K Oct 22 23:16 .
drwxrwxrwt 25 root root 4.0K Oct 22 09:36 ..
drwxr-xr-x 3 root root 4.0K Feb 28 2012 svn