10. chkconfig(구동 프로그램 설정) |
1) 경로 : /sbin/chkconfig
2) 요약 : 시스템을 부팅할 때 부팅 레벨별로 자동으로 실행할 서비스를 살펴보고 업데이트
3) 사용 방법
chkconfig --list [서비스 이름]
chkconfig --add [서비스 이름]
chkconfig --del [서비스 이름]
chkconfig [--level 레벨] [서비스 이름] <on|off|reset>
chkconfig [--level 레벨] [서비스 이름]
4) 추가 설명
부팅 시 실행할 데몬은 /etc/rc.d 밑의 각 디렉터리에 모여 있습니다. rc 뒤에 붙은 숫자는 런 레벨 번호로 rc0.d는 런레벨이 0이며, rc1.d는 1, rc5.d 는 런 레벨이 5에 해당하는 서비스를 모아놓은 디렉터리입니다.
레드햇 계열 배포판 기준으로 GUI 모드로 부팅하는 rc5.d 디렉터리를 살펴봅니다. 여기서 K로 시작하는 파일은 부팅 시 실행하지 않는 데몬이며, S로 시작하는 파일이 부팅 시 실행하는 서비스 입니다. S 다음의 숫자는 시작 순서입니다.
$ ls /etc/rc.d/
K01dnsmasq K10radiusd K35smb K74nscd
K89rdisc S10network S18rpcidmapd S26hidd
S90crond S99smartd K02NetworkManager K10tcsd
K35vncserver K74ntpd K91capi S11auditd
S19rpcgssd S26lm_sensors S90xfs K02avahi--dnsconfd
... 생략 ...
이 파일명을 수정하여 런 레벨별 서비스를 설정할 수도 있지만, chkconfig 명령을 사용하면 좀더 편리하게 변경할 수 있습니다.
$ chkconfig --list | more
NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
위 목록 중 NetworkManager 서비스를 런 레벨 3, 5에서 활성화하고 해당 서비스 활성화 정보를 살펴봅시다.
chkconfig --level [런레벨] [서비스 이름] on으로 해당 서비스를 활성화 할 수 있고, chkconfig --list [서비스 이름] 으로 상태를 출력할 수 있습니다.
$ chkconfig --level 35 NetworkManager on
$ chkconfig --list NetworkManager
NetworkManager 0:off 1:off 2:off 3:on 4:off 5:on 6:off
<NetworkManager 서비스 런 레벨 5 해제>
$ chkconfig --level 5 NetworkManager off
$ chkconfig --list NetworkManager
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:off 6:off
만일 특정 서비스를 모든 실행 레벨에서 삭제하고 싶다면 chkconfig --del 명령을 사용하면 됩니다.
$ chkconfig --del NetworkManager
$ chkconfig --list NetworkManager
service NetworkManager supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add NetworkManager')
모든 레벨에서 삭제했던 NetworkManager에 다시 런 레벨을 설정하려면 chkconfig --add 명령으로 NetworkManager 서비스를 먼저 추가하고 런 레벨 설정을 해야 합니다.
$ chkconfig --add NetworkManager
$ chkconfig --level 35 NetworkManager on
$ chkconfig --list NetworkManager
NetworkManager 0:off 1:off 2:off 3:on 4:off 5:on 6:off
11. crontab(crontab 관리) |
1) 경로 : /usr/bin/crontab
2) 요약 : 사용자의 개별 crontab 파일을 관리
3) 사용 방법 : crontab [ -u 사용자ID] 파일
crontab [ -u 사용자ID] { -l | -r | -e }
4) 옵션
-l(엘) : 현재 crontab 내용을 출력
-r : 현재 crontab 내용을 삭제
-e : crontab 파일의 내용을 편집
5) 추가 설명
cron은 백업과 같이 주기적으로 실행하는 명령들을 정해진 시간에 자동으로 실행해 주는 도구로써 다음과 같이 서비스를 실행합니다.
# /etc/init.d/crond start
Starting crond.......... [OK]
cron 기본 설정 파일은 레드햇의 경우 /etc/crontab에 있습니다. crontab은 주기적으로 지정한 시간에 지정한 작업을 하도록 설정합니다. 이에 반해 at 명령은 지정한 시간에 한번만 시행됩니다.
# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg
위의 설정 내용 중 02 4 * * * root run-parts /etc/cron.daily를 살펴보면, 매일 4시 2분에 /etc/cron.daily 디렉터리의 내용을 실행한다는 의미입니다. 두 번째 22 4 * * 0의 의미는 매주 일요일 4시 22분에 실행한다는 의미입니다. 또 하나 42 4 1 * * 는 매월 1일 4시 42분에 실행한다는 의미입니다. 이 처럼 매일 실행되는 작업은 /etc/cron.daily, 매주 실행되는 작업은 /etc/cron.weekly, 매월 실행되는 작업은 /etc/cron.monthly 디렉터리에 등록합니다. 그럼 root 계정에 새로운 작업 스케쥴을 등록해 봅시다. 먼저 이전에 crontab에 설정되어 있는 작업이 잇는지 확인합니다. 아래의 메시지가 뜬다면 등록된 작업은 없는 것입니다.
# crontab -l
no crontab for root
crontab -e 명령을 실행하면, 편집기가 실행되어 새로운 cron 작업을 등록할 수 있습니다.
# crontab -e
no crontab for root - using an empty one
<작업 작성>
0 4 * * * echo crontab testing
저장하고 나오게 되면 아래의 메시지를 볼 수 있을 것입니다.
"crontab. 1314" 1L, 31C written
crontab: installing new crontab
그럼 등록된 작업 목록을 -l 옵션으로 살펴봅시다
# crontab -l
0 4 * * * echo crontab testing
cron 스케쥴에 등록하는 시간 지정에 대한 각 항목은 다음과 같습니다.
구분 | 설정값 |
분(Minutes) | 0-59 |
시(Hour) | 0-23 |
일(Day of month) | 1-31 |
월(Month) | 1-12로 숫자를 표기하거나 Jan, Feb, Mar 등으로 표기 |
요일(Day of week) | 0-6(0은 일요일)로 숫자 표기하거나 Sun, Mon, Tue 등으로 표기 |
12. dmesg(부팅 로그 보기) |
1) 경로 : /bin/dmesg
2) 요약 : 커널 링(ring) 버퍼를 출력하거나 제어
3) 사용 방법 : dmesg [옵션]
4) 옵션
-c : 메시지 내용을 출력하고 링 버퍼를 모두 비움
-r : 로우(raw) 메시지 버퍼를 출력
-s bufsize : 커널 링 버퍼 쿼리를 위한 크기(bufsize)를 지정. 기본값은 16,392
-n level : 지정한 로그 레벨(level) 메시지를 출력
5) 추가 설명
dmesg는 커널 링 버퍼를 보거나 제어하는 명령어로 시스템이 부팅할 때마다 로딩되는 시스템 정보의 로그 메시지를 가지고 있습니다. 이 버퍼에는 리눅스 커널 버전과 gcc 버전, CPU 정보 등 부팅 시의 내용을 포함하고 있어 시스템 정보를 살펴볼 때 유용합니다.
$ dmesg
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 2.6.32-23-generic (build@rothera) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) # 37-Ubuntu SMP Fri Jun 11 07:54:58 UTC 2020 (Ubuntu 2.6.32-23.37-generic 2.6.32.15+drm33.5)
[ 0.000000] KERNEL supported cpus:
[ 0.000000] Intel GenuineIntel
[ 0.000000] AMD AuthenticAMD
[ 0.000000] NSC Geode By NSC
... 생략 ...
위 시스템은 리눅스 커널 2.6.32-23-generic에 gcc 4.4.3을 사용하고 있습니다.
부팅 때부터의 커널 로그를 버퍼에 저장하고 있다가 출력하는데, 이 정보는 -c 옵션으로 정보를 출력한 후에 기존 버퍼 정보를 삭제할 수 있습니다. 이는 디버깅을 위해 버퍼에 쌓인 이전의 많은 정보를 삭제하고 초기화 할 때 유용합니다.
커널 버전의 의미 |
먼저 현재 최신의 커널 버전을 확인해 봅니다. # finger @finger.kernel.org
위와 같이 최신 안정 버전과 개발 버전을 확인할 수 있습니다. 커널 버전은 2.6.34이라면 아래와 같이 세 부분으로 버전의 의미를 나눌 수 있습니다. 2 : 획기적인 변화가 있을 때 바뀜 6: 안정 버전인지 개발 버전인지를 나타냄(홀수 : 개발, 짝수 : 안정) 34 : 몇 번의 패치가 있었는지 나타냄
이는 2.6대의 안정 버전으로 34번의 공식 패치가 있었다는 뜻입니다. 일반적으로 커널 개발자가 아닌 이상 안정 버전을 사용합니다. 개발 버전에 충분한 패치와 실험이 이루어져 안정화되면 짝수 버전으로 바뀝니다. |
13. free(메모리 정보 보기) |
1) 경로 : /usr/bin/free
2) 요약 : 시스템의 메모리 사용 현황을 출력
3) 사용 방법 : free [옵션]
4) 옵션
-b : 메모리의 양을 바이트로 표시
-k : 킬로 바이트 단위로 표시
-m : 메가 바이트 단위로 표시
-t : 총계가 포함된 줄을 출력
-o : 버퍼에 조정된 줄의 출력을 비활성화
-s : 지정된 초마다 출력
5) 추가 설명
free 명령어는 시스템에서 사용하지 않는 메모리와 이미 사용하고 있는 물리적인 메모리, 스왑 메모리의 전체 용량 등의 메모리 사용 현황을 확인할 때 사용합니다. 또한 커널에서 사용하는 공유 메모리와 버퍼 정보도 출력합니다.
# free
total used free shared buffers cached
Mem: 785408 606716 178692 0 74336 402840
-/+ buffers/cache: 129540 655868
Swap: 2096472 0 2096472
free -s 초 명령은 지정한 초 간격으로 메모리 사용 현황을 업데이트 하면서 출력합니다.
# free -s 1
total used free shared buffers cached
Mem: 785408 606716 178692 0 74336 402840
-/+ buffers/cache: 129540 655868
Swap: 2096472 0 2096472
total used free shared buffers cached
Mem: 785408 606716 178692 0 74336 402840
-/+ buffers/cache: 129540 655868
Swap: 2096472 0 2096472
14. halt(시스템 종료) |
1) 경로 : /sbin/halt
2) 요약 : 시스템을 종료
3) 사용 방법 : halt [옵션]
4) 옵션
-d : wtmp 파일에 로그를 남기지 않음
-f : 강제로 종료
-n : 종료할 때 싱크를 하지 않음
-w : 실제로 시스템을 종료하지 않고, /var/log/wtmp 파일에 로그만 남김
5) 추가 설명
halt 명령어는 /var/log/wtmp 파일에 시스템 종료 로그를 남기고 시스템을 종료하거나 재부팅합니다. 만일 현재 시스템의 런 레벨이 0이나 6이 아니라면 halt나 reboot 명령은 shutdown(8) 명령어를 호출합니다.
시스템 종료 명령어 |
shutdown, halt, init 레벨을 이용하여 시스템을 종료하거나 재부팅할 수 있습니다.
1. init0(시스템 종료), init 6(시스템 재시작) 이 명령어는 시스템에 로그인하여 작업 중인 사용자에게 메시지를 보내지 않고 바로 종료하므로 서버로 운영 중인 호스트에서는 유의해야 합니다.
2. shutdown 시스템 종료에 대한 경고 메시지와 종료할 시간을 설정하여 사용자가 작업을 마무리할 수 있는 시간적 여유가 있습니다.
3. halt shutdown -h now 명령어와 같은 기능을 ㅎ바니다.
4. reboot shutdown -r now 명령어와 같은 기능을 합니다. |
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 시스템 관리 명령어 5탄(poweroff, reboot, runlevel, setup) (0) | 2020.03.11 |
---|---|
[RHEL6] 시스템 관리 명령어 4탄(hdparm, logger, logrotate, losetup) (0) | 2020.03.11 |
[RHEL6] 시스템 관리 명령어 2탄(basename, batch, cfgamd, chage) (0) | 2020.03.04 |
[RHEL6] 시스템 관리 명령어 1탄(alias, at, atq, atrm, badblocks) (0) | 2020.02.20 |
[RHEL6] 쉘 명령어 4탄(sleep, test, true, while) (0) | 2020.02.14 |
댓글