리눅스 ~ 시스템 관리.
기사 디렉토리
프로세스 관리.
뷰어를 처리합니다.
~ 무엇을 처리합니다.
프로세스가 실행되는 프로그램이나 명령 존재이며, 각 엔티티는 실행, 자신의 주소 공간을 가지고 있으며, 일부 시스템 자원을 차지하는 과정이다.
또한 과정입니다 아닙니다.
프로세스 관리의 역할.
- 서버의 상태를 확인합니다.
- 모든 프로세스를 볼 수 있습니다.
- 프로세스를 종료.
그 과정에서 모든 프로세스를 볼 수 있습니다.
- 모든 프로세스를 볼 수 있습니다. 사용 BSD 운영 체제 형식입니다.
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19232 1404 ? Ss Feb18 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S Feb18 0:00 [kthreadd]
。。。
A -> 모든 전경 과정.
X -> 모든 백그라운드 프로세스.
U -> 사용자.
- 사용자
, 사용자가 생성하는 방법.- PID
프로세스의 ID 번호.- %의 CPU
프로세스에 의해 소비되는 CPU 자원의 비율이 높을수록 직업, 더 많은 자원을 많이 사용하는 프로세스.- % MEM의
프로세스가 실제 메모리의 비율을 소요, 더 높은 직업, 더 많은 자원을 많이 사용하는 프로세스.- VSZ의
프로세스는 가상 메모리, 단위 KB의 크기를 소모합니다.- RSS의
프로세스는 실제 물리적 메모리, 단위 KB의 크기를 소모합니다.- TTY의
단말이 실행하는 방법.
? - "단자 수행하지 시스템 커널 실행.
상기 식에서 tty1로 ~ tty7 로컬 콘솔 터미널을 나타냅니다.
tty1로 ~ tty6 터미널 문자 인터페이스 지역.
그래픽 단자 tty7.
점 가상 터미널 대신 / 0 ~ 256.- STAT의
프로세스 상태.
R -> 실행.
S -> 수면.
T는 -> 멈췄다.
들 -> 서브 루틴이 포함되어 있습니다.
+
-> 배경입니다.- START는
프로세스의 시작 시간.- TIME
프로세스는 CPU의 계산 시간, 시스템 시간에하지에주의를 사용합니다.- COMMAND는
이 과정에 대한 명령 이름을 생성.
당신은 추가하는 경우 -
. (UNIX가 인식되지 않습니다 -
).
[root@localhost ~]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19232 1404 ? Ss Feb18 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S Feb18 0:00 [kthreadd]
。。。
- 모든 프로세스를 볼 수 있습니다. 표준 리눅스 명령 형식을 사용합니다.
[root@localhost ~]# ps -le
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 4808 poll_s ? 00:00:01 init
1 S 0 2 0 0 80 0 - 0 kthrea ? 00:00:00 kthreadd
。。。
-l -> 세부 사항.
-e -> 모든.
시스템 상태를 볼 수 있습니다.
가기 [옵션]
초 -d 수는 -> 지정 상부의 명령은 몇 초마다 업데이트합니다. 기본값은 3 초입니다.
명령은 상부의 명령 사이에 대화 형 모드에서 실행할 수 있습니다.
? 또는 시간 -> 디스플레이 대화식 모드 도움이됩니다.
P는 -> CPU 사용률으로 정렬. 기본.
M -> 정렬 메모리 사용.
N은 -> PID를 정렬합니다.
Q -> 종료 위로.
프로세스를 종료합니다.
# 查看可用的进程信号。
geek@geek-PC:~$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
- 일반적인 신호.
신호 코드 | 신호 명칭 | 설명 |
---|---|---|
1 | 가입하기 | 처리 후 즉시 종료하고,이 신호를 다시 읽 재기동 후 구성 파일. |
이 | SIGINT | 전경 프로세스를 종료하기위한 프로그램 종료 신호를 출력한다. |
8 | SIGFPE | 때 치명적인 연산 오류 발행. 그것뿐만 아니라 부동 소수점 에러가 제로 다른 산술 오류에 의해 오버플로 나눈 값을 포함 포함한다. |
9 | SIGKILL | 즉각 중단을 위해 프로그램을 실행합니다. 이 신호는, 치료 및 방치를 차단 할 수 없습니다. 일반적으로 강제 종료 프로세스에 사용됩니다. |
(14) | SIGALRM | 클럭 타이밍 신호. 실제 시간 또는 클록 신호를 이용하여 경보 기능의 계산. |
(15) | SIGTERM | 일반 과정, 기본 신호 kill 명령의 끝을. 프로세스가 종종 문제가 발생하는 경우,이 신호가 제대로 프로세스를 종료하지, 우리는 SIGKILL 신호는 신호 9입니다 노력할 것입니다. |
(18) | SIGCONT | 이 신호는 정지 프로세스 재개를 실행할 수 있도록, 신호가 차단 될 수 없다. |
(19) | SIGSTOP | 이 신호에서 Ctrl + z는 단축키의 상당 전경 처리를 중단 할 수있다. 이 신호가 차단 될 수 없다. |
죽일 -1 PID -> 재부팅.
죽일 -9 PID를 -> 강제 종료.
[루트 @ localhost를 ~] # killall는 [ 옵션] [신호] 프로세스 이름
// 프로세스 이름에 따라 프로세스를 종료.
옵션을 선택합니다.
-i. -> 대화 형. 당신이 프로세스를 종료하려면 물었다.
-I. ->의 경우 프로세스 이름을 무시합니다.
[루트 @ localhost를 ~] # pkill에 [ 옵션] [신호] 프로세스 이름
// 프로세스 이름에 따라 프로세스를 종료.
옵션을 선택합니다.
단말 번호 -t. -> 걷어 사용자 단말 번호.
# 使用 w 命令查询本机已经登录的用户。
[root@localhost ~]# w
11:54:36 up 9 min, 2 users, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 11:45 9:18 0.04s 0.04s -bash
root pts/0 192.168.223.1 11:45 0.00s 0.05s 0.00s w
# 强制杀死从 tty1 终端登录的进程。
[root@localhost ~]# pkill -9 -t tty1
[root@localhost ~]# w
11:56:20 up 11 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.223.1 11:45 0.00s 0.07s 0.01s w
pstree -p -> 프로세스 트리.
[root@localhost ~]# pstree -p
init(1)─┬─auditd(1201)───{auditd}(1202)
├─crond(1393)
├─dhclient(1139)
├─login(1406)───bash(1428)
├─master(1379)─┬─pickup(1383)
│ └─qmgr(1384)
├─mingetty(1408)
├─mingetty(1410)
├─mingetty(1412)
├─mingetty(1414)
├─mingetty(1416)
├─rsyslogd(1223)─┬─{rsyslogd}(1224)
│ ├─{rsyslogd}(1226)
│ └─{rsyslogd}(1227)
├─sshd(1289)───sshd(1443)───bash(1446)───pstree(1459)
├─udevd(491)─┬─udevd(1423)
│ └─udevd(1424)
└─xinetd(1300)
작업 관리.
배경으로하는 프로세스.
-
-zcf etc.tar.gz 타르 / 등 및
// 배경은 계속 실행됩니다. -
[루트 @ localhost를 ~] # 위로
// 상부의 명령을 실행하는 동안, Ctrl 키 + z를 바로 가기.
(后台暂停)
.
배경 작업을 볼 수 있습니다.
[루트 @ localhost를 ~] # 작업 [-l]
옵션을 선택합니다.
-l. -> PID 작업을 표시합니다.
+
때 배경으로 최근 작업의 수뿐만 아니라 작품의 대표 일에 기본 다시 복원 할 수 있습니다.
"-"기호는 작품의 배경에 어미에서 두 번째의 음절을 나타냅니다.
[root@localhost ~]# jobs -l
[1]- 1546 Stopped (signal) top
[2]+ 1548 Stopped (signal) top
프론트 데스크에 복원 작업 다시 실행을 중단합니다.
[루트 @ localhost를 ~] # fg를 %의 작업 번호
매개 변수입니다.
% 작업 번호. -> % 번호는 생략하지만, 작업 번호와 PID의 차이를주의 할 수있다. (1, 2, 3).
[루트 @ localhost를 ~] # 개의 BG % 작업 번호
배경은 명령 실행을, 복원 및 프론트 데스크는 대화 형이 아니거나 배경에 복원 할 수 없습니다.
시스템 자원 관리.
시스템 리소스를 볼 수 있습니다.
vmstat를 ~ 모니터 시스템 리소스.
[루트 @ localhost를 ~] vmstat를 [새로 고침 지연 갱신 빈도]
[root@localhost ~]# vmstat 2 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 842980 7612 42844 0 0 17 1 12 14 0 0 100 0 0
0 0 0 842988 7612 42844 0 0 0 0 12 13 0 0 100 0 0
0 0 0 842988 7612 42844 0 0 0 0 8 9 0 0 100 0 0
~ 커널 부팅 dmesg 명령 정보를 검출.
[루트 @ localhost를 ~] # dmesg를
[루트 @ localhost를 ~] # dmesg를 | 그렙 CPU
보기 메모리 사용을 무료로 ~.
[루트 @ localhost를 ~] # 무료 [-b | -k | -m | -g]
옵션을 선택합니다.
-b. -> 디스플레이 바이트.
-k. -> KB 디스플레이에서 "기본."
-m. -> MB 표시한다.
-g. -> GB에 표시
`
캐싱 버퍼링 차이.
- 캐시 (캐시) 데이터 속도를하는 데 사용되는 하드 디스크에서 "읽기".
시스템 캐시에 저장, 첫 번째 데이터를 읽은 후, 하드 디스크에서 읽을 수있는 프로그램에 대한 첫 번째 호출. 다른 프로그램이 데이터를 사용하면 캐시에서 직접 촬영합니다. (>> 메모리 읽기 및 쓰기 속도가 하드 디스크의 읽기 및 쓰기 속도).
- 그리고 버퍼 (완충)은 "쓰기"드라이브를 가속화하는 데 사용됩니다.
> 느린 - 데이터를 하드 디스크에 직접 기록된다 저장할 때마다합니다. 우선, 버퍼 영역에 도달하고 있으므로 함께 디스크에 기록 일정량.
보기 CPU 정보 ~은 / proc / cpuinfo의.
[root@localhost ~]# cat /proc/cpuinfo
가동 시간
커널 정보 시스템을 확인합니다.
[루트 @ localhost를 ~] # uName의 [ 옵션]
~
-a. -> 모든 관련 정보 시스템을 볼 수 있습니다.
-r. ->보기 커널 버전.
-s -> 커널의 이름을 확인합니다.
현재 시스템의 숫자를 결정합니다.
[root@localhost ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
끝나면 uname -m
리눅스의 현재 릴리스 버전을 볼 수 있습니다.
geek@geek-PC:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Deepin
Description: Deepin 15.11
Release: 15.11
Codename: stable
목록 프로세스 또는 사용 열린 파일 정보 ~ lsof를.
[루트 @ localhost를 ~] lsof를 # [ 옵션]
// 목록 정보 처리 호출하거나 파일을 엽니 다.
옵션을 선택합니다.
-c 문자열입니다. -> 문자열의 목록만을 시작은 열려있는 파일을 처리합니다.
-u 사용자 이름. -> 목록 만 사용자 프로세스 열려있는 파일.
PID를 -p. -> PID는 열려있는 파일의 목록을 처리합니다.
[root@localhost ~]# lsof -c init
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 253,0 4096 2 /
init 1 root rtd DIR 253,0 4096 2 /
init 1 root txt REG 253,0 150352 916426 /sbin/init
init 1 root mem REG 253,0 66432 261665 /lib64/libnss_files-2.12.so
init 1 root mem REG 253,0 1924768 261649 /lib64/libc-2.12.so
init 1 root mem REG 253,0 90912 261635 /lib64/libgcc_s-4.4.7-20120601.so.1
init 1 root mem REG 253,0 44472 261677 /lib64/librt-2.12.so
init 1 root mem REG 253,0 143280 261673 /lib64/libpthread-2.12.so
init 1 root mem REG 253,0 265736 261729 /lib64/libdbus-1.so.3.4.0
init 1 root mem REG 253,0 39896 261746 /lib64/libnih-dbus.so.1.0.0
init 1 root mem REG 253,0 106016 261748 /lib64/libnih.so.1.0.0
init 1 root mem REG 253,0 159312 262040 /lib64/ld-2.12.so
init 1 root 0u CHR 1,3 0t0 4601 /dev/null
init 1 root 1u CHR 1,3 0t0 4601 /dev/null
init 1 root 2u CHR 1,3 0t0 4601 /dev/null
init 1 root 3r FIFO 0,8 0t0 9461 pipe
init 1 root 4w FIFO 0,8 0t0 9461 pipe
init 1 root 5r DIR 0,10 0 1 inotify
init 1 root 6r DIR 0,10 0 1 inotify
init 1 root 7u unix 0xffff880037bf93c0 0t0 9462 @/com/ubuntu/upstart
init 1 root 8u unix 0xffff88003d3fb8c0 0t0 13519 socket
[root@localhost ~]#
시스템 타이밍 작업.
있으며 crond 서비스 관리 및 액세스 할 수 있습니다.
[root@localhost ~]# service crond restart
Stopping crond: [ OK ]
Starting crond: [ OK ]
[root@localhost ~]# chkconfig crond on
사용자의 crontab 설정.
[루트 @ localhost를 ~] # crontab을 [ 옵션]
옵션을 선택합니다.
-e. -> 편집 정기적으로 작업을 crontab에.
-l. -> 쿼리의 crontab 작업.
-r. -> 모든 cronyab 현재 사용자의 작업을 삭제합니다.
[root@localhost ~]# crontab -l
no crontab for root
VI 편집기 기본 /tmp/crontab.HeSBLh
.
[root@localhost ~]# crontab -e
"/tmp/crontab.HeSBLh" 0L, 0C
형식.
* * * * * command
계획 | 의미 | 범위 |
---|---|---|
① * | 시간의 처음 몇 분 | 0 ~ 59 |
② * | 하루의 처음 몇 시간 | 0 ~ 23 |
③ * | 달의 첫 번째 날 | 1 ~ 31 |
④ * | 한 해의 첫 달 | 1 ~ 12 |
⑤ * | 무슨 요일 | 0-7 (0과 7은 일요일을 나타낸다). |
코드 | 의미 |
---|---|
4522 * * * 명령 | 22시 45분 매일을 수행합니다. |
* 017 * 1 명령 | 월요일 17시 실행. |
051 * 15 * 명령 | 1 개월 15 5시 실행. |
404 * * 1-5 명령 | 4시 40분 금요일까지 매주 월요일 실행합니다. |
* / 104 * * * 명령 | 4시 매일 10 분마다 수행 |
001 15 * 1 명령 | 매월 1과 15은 0시 주 수행 할 수 있습니다. |
참고 : 가장 좋은 몇 몇 주간의 수뿐만 아니라 동시에. 무식한 힘. . .
예를 들면.
* / 5 * * * * / 빈 / 에코 "11">> / TMP / 시험
5 5 * 2 / sbin에 / 종료 -r 지금
0~5 1,10,15 * /root/sh/autobak.sh