728x90
반응형
◆ 데몬 종류


1) NetworkManager

자동으로 최상의 유효한 연결들을 스위칭하는 역할  bonding 구성시 충돌발생 가능성 있음. Off 권고


2 ) NetworkManagerDispatcher

NetworkManager데몬이 네트워크 상태를 변경할 때 자동으로 스크립트들을 실행하여 처리하는 데몬


3) abrtd

abrt(Automatic Bug Reporting Tool)는 RedHat 에서 제공하는 자동 버그 리포팅 툴이다 . 백그라운드 서비스 형태로 root 권한으로 기동된다


4) abrt-ccpp

C/C++ 문제 관련 분석을 위한 abrt서비스 데몬


5) abrt-oops

커널 문제 관련 분석을 위한 abrt서비스 데몬


6) acpid

Advanced Configuration and Power Interface 의 약자로 커널로부터 ACPI(전력 관리 규약)이벤트를 받아서 처리


7) amanda

서버/클라이언트 환경의 네트웍 백업 시스템


8) amd

자동마운트 서비스(automatically mount file system)


9) anacron

제 시간에 실행하지 못하고 남겨진 cron작업을 실행하는 데몬


10) apmd

배터리 상태를 모니터링 & 로그기록을 남기며 부족하면 종료시키는 기능을 가진 데몬(노트북 종류에서의 전원 관리 데몬)


11) arpwatch

네트웍인터페이스 하드웨어주소(MAC주소)와 IP주소를 쌍으로 모니터링하는 툴로서 보안도구로 사용됨


12) arptables_jf

자동으로 arptables로 패킷필터링을 하는 방화벽 데몬


13 ) atd

at 명령어를 통해 예약 작업관리를 할 수 있도록 하는 데몬


14 ) auditd

커널에 의해 생성된 검사레코드를 저장. SELinux가 이벤트들을 기록하기 위해 audit 데몬을 사용 , SELinux나 기타 로깅 서비스가 활성화 되어 있다면 enable을 권장


15) autofs

USB와 같은 이동식 파일시스템을 자동으로 마운트하는 데몬


16 ) avahi-daemon & avahi-dnsconfd

zeroconf' 수행(사람의 설정 없이 자동으로 네트워크 구성이 완료되어 인터넷 접속을 가능하게 하는 기법)
로컬 네트워크에서 DNS서버 없이 장치와 서비스를 탐지하는데 유용함.
호환되는 장치나 서비스가 없으면 불필요한 데몬.


17 ) bgpd

BGPv4, BGPv4+, BGPv4- 라우팅 프로토콜 데몬 스크립트


18 ) bootparamd

디스크가 없는 서버의 부팅정보제공을 하는 데몬


19 ) bluetooth

블루투스와 관련된 검색, 인증, HID(키보드, 마우스와 같은 장비를 지원하기 위한 기능)등을 서비스.
블루투스를 사용하지 않는다면 disable


20 ) certmonger

하부 시스템 인증서를 추적하여 인증서 유효 기간이 만료되기전 자동으로 인증서 업데이트 시도 역할


21 ) cgconfig

libcgroup 패키지와 설치되는 cgconfig 서비스는 계층 구조를 생성하여 서브시스템을 연결하고 계층 내에서  cgroup을 관리하기 위한 편리한 방법을 제공한다
/etc/cgconfig.conf


22 ) cgred

/etc/cgrules.conf 파일에 설정된 매개변수에 따라 작업을 cgroup으로 옮기는 데몬


23 ) chef-client

Chef server 에 등록된 노드에서 실행하는 에이전트 데몬


24 ) chargen-dgram

UDP/DGRAM Chargen Service 를 위한 데몬 , xinetd based service


25 ) cloud-set-guest-password

클라우드 스택 UI 에서 제공되는 패스워드 리셋 스크립트


26 ) cloud-set-guest-sshkey.in

클라우드 스택 에서 제공되는 인증을 위한 SSH key 생성 스크립트


27 ) comsat

메일도착알림이나 사용자 알림사항등이 있을 때 알려주는 biff server


28 ) conman

콘솔 관리 지원 서비스. 다수의 콘솔 장치와 동시 접속자에 대한 서비스 기능을 지님.
로컬 시리얼 장치들과 리모트 터미널 서버들을 지원.
여러대의 서버를 운영한다면 enable을 권장.


29 ) cpuspeed

동적으로 CPU속도(or 주파수)를 전원절약 및 최적의 시스템을 위해 합리적으로 조절하는 데몬


30 ) crond

예약을 통해 자동으로 작업을 실행 하도록 하는 데몬


31 ) cups & cups-config-daemon

Common UNIX Printing System의 약자로서 프린트(문서출력) 관련 데몬.
프린트 서비스를 이용하지 않으면 disable.


32 ) daytime

daytime 서비스 , xinetd based service


33 ) daytime-udp

daytime의 udp서비스 , xinetd based service


34 ) dhcdbd

DHCP Client D-Bus Daemon.
컴퓨터의 네트워킹 장비를 제어하기 위해, dhclient에게 D-Bus 인터페이스를 제공하고
NetworkManager 데몬이 dhclient를 쿼리 및 제어.
D-Bus는  message bus system. 쉽게 말해 서로 다른 응용프로그램 간의 대화의 수단.
NetworkManager나 DHCP 데몬을 사용하고 있는 경우 enable을 권장.
다른 네트워크 사이의 스위칭이 필요한경우 enable 을 권장.
수동 IP나 DHCP를 사용하지 않는다면 disable.


35 ) dhcpd

DHCP (Dynamic Host Control Protocol) Daemon.
동적 IP주소 할당 서버를 구동하지 않는다면 disable.


36 ) dhcrelay

DHCP에 대한 릴레이(relay)를 제공하기 위한 dhcrelay 데몬 스크립트
/usr/sbin/dhcrelay


37 ) diskdump

기존의 시스템이 충돌했을때 dump파일을 저장하고 diskdump 모듈을 초기화


38 ) dund

블루투스 관련 데몬으로서 dund는 Dial-Up-Networking Daemon의 약자이다.
블루투스 기능을 사용하지 않으면 disable.


39 ) edac

EDAC(Error Detection and Correction) 하드웨어 관련 오류 수정 데몬. 주로 ECC 메모리 에러 핸들링을 담당하나 PCI bus parity 에러를 감지하고 리포팅도 한다


40 ) fcoe

FCoE (Fiber Channel over Ethernet) , Open-FcoE service daemon


41 ) finger

로컬이나 원격서버의 계정사용자 정보 확인하는 finger 서비스


42 ) firstboot

초기 설정 유틸리티 스크립트이다.
설치진행 후에 처음으로 부팅시 시스템에 의해 실행된다.
/etc/sysconfig/firstboot 가 새로 생성되고.  firstboot 데몬이 부팅할 때 마다 /etc/sysconfig/firstboot 파일을 확인하고.
존재하지 않고, 변경되지 않는한 firstboot데몬은 실행되지 않는다.
disable 권장.


43) gatherer


44 ) gpm

텍스트 콘솔상에서 마우스포인터를 지원해주는 데몬. 따라서 런레벨 3에서만 enable을 권장.
( 런레벨 5(그래픽환경)에서는 disable 권장 )


45 ) haldaemon

하드웨어 모니터링 시스템 데몬.
방대한 종류의 하드웨어와 마운트 가능한 미디어를 자동으로 인식.
새 하드웨어나 교체된 하드웨어의 정보를 수집한다.


46 ) halt

현 상태의 리눅스를 즉시 종료


47 ) hidd

블루투스 관련 서비스로서 키보드나 마우스등의 입력장치 지원을 제공.
블루투스 기능을 사용하지 않는다면 disable.


48 ) hplip & hpiod & hpssd

리눅스에서 HP 계열의 프린터를 지원해주는 데몬.
호환되는 장치가 없다면 disable.


49)httpd

HTTP 웹 서버 데몬.
웹 서버를 구동하지 않는다면 disable로 설정


50 ) ibmasm

"IBM Advanced System Management"
IBM 시스템 관리 드라이버들을 설정하는데 필요한 툴을 포함하는 데몬.


51 ) imap

POP과 함꼐 메일수신데몬으로 사용되는 IMAP 데몬


52 ) imaps

SSL을 지원하는 IMAP데몬


53 ) innd

인터넷 NEWS 데몬


54 ) ipchains

IP firewall 관리 데몬


55 ) ipmi

시스템상의 하드웨어 상태를 모니터링하고 관리해주는 데몬


56 ) ipmievd

syslog 에 이벤트를 보내기위한 IPMI 이벤트 데몬


57 ) ipsec


58 ) ip6tables

IPv6 통신을 위한 방화벽 서비스. IPv6를 사용하지 않으면 disable로 설정해도 됨.


59 ) iptables

리눅스 소프트웨어의 표준 방화벽 서비스.
인터넷에 연결되는 모든 시스템에 enable 설정을 권장.


60 ) irda

적외선 장치들간의 통신을 지원해주는 서비스. 사용하지 않는다면 disable 설정.


61 ) irqbalance

듀얼 코어 이상의 CPU에서의 수행능력을 증가시켜주는 데몬.
싱글코어 CPU에서는 enable를 해도 영향이 없음.


62 )iscsi

ISCSI 관련 데몬 스크립트
/etc/iscsi.conf


63 ) isdn

ISDN 연결용 하드웨어 지원 및 서비스.
ISDN modem을 사용하지 않으면 disable.


64 ) kadmin

Kerberos 5 관리데몬을 시작시키거나 종료시키는 스크립트
/usr/kerberos/sbin/kadmin


65 ) kdump

안정적인 덤프 생성 및 커널 크래쉬덤프 캡쳐를 지원해 오류 원인을 추적하는데 도움을 주는 데몬


66 ) killall

현재 실행중인 서비스들을 대상으로 모두 중지시키는 스크립트. 주소 시스템을 중지하거나 재시작할때 실행되는 스크립트


67 ) kprop

Kerberos 5 클라이언트를 시작하거나 종료시키는 스크립트
/usr/kerberos/sbin/kprop


68 ) krb524

krb524 서비스는 kerberos 5 인증서를 kerberos 4인증서로 변환하는 서비스


69 ) krb5kdc

인증서를 획득하기 위하여 연결을 시도하는 kerberos 4와 kerberos 5 클라이언트들을 위하여 kerberos 5서버를 시작/종료 스크립트


70 ) kudzu

하드웨어 교체 여부를 검사해서 임의로 구성해주는 서비스. 필요에 따라 enable 또는 disable.


71 ) ldap

디렉토리 액세스 프로토콜 데몬인 LDAP 데몬(slapd 와 slurpd데몬)을 시작/종료 스크립트


72 ) lisa

LAN Information Server 데몬.
호스트 정보를 KDE LAN Browser로 보내고 LAN Browser는 네트워크상의 사용가능한 공유정보를 그래픽환경으로 접근할 수 있게 한다.
윈도우의 네크워크 환경과 같은 기능을 제공하는 데몬.
Samba와 NFS 사용자들에게는 그다지 필요없는 기능.
disable 권장.


73 ) lm_sensors

마더보드 센서 값이나 노트북 또는 고급서버들의 특정 하드웨어를 모니터링 해주는 서비스.
실시간으로 PC Health 등과 같은 정보를 볼 수 있게 한다.


74 ) lvm2-monitor

dmeventd(The Linux Kernel Device Mapper)를 사용하는 LVS 를 모니터링 하는 서비스 데몬


75 ) mcstrans

SELinux를 이용할때 올바른 문맥의 정보를 볼 수 있게 하는데 필요한 서비스.
SELinux를 사용하지 않는다면 disable.


76 ) mdmonitor

RAID나 LVM 정보를 모니터링 하는데 유용한 데몬. 중요한 서비스는 아니다.


77 ) mdmpd

다중 경로 장치를 모니터링하고 관리하기 위한 서비스.


78 ) messagebus

리눅스를 위한 IPC(Interprocess Communication) 서비스.
이 서비스는 D-Bus와 중요한 구성 요소들과 통신하므로  enable을 권장.


79 ) microcode_ctl

Intel IA32 processor 를 위한 마이크로코드(펌웨어와 비슷) 유틸리티.
IA32는 Intel Architecture 32bit의 약자이며 IA32 processor는 32bit 체계의 CPU.
즉, 인텔 계열의 3bit CPU를 위한 마이크로코드 유틸리티.


80 ) multipathd

다중 경로 장치에 대해 시스템에 알려 주고 이를 일치시키고 관리하는 데몬


81 ) mysqld

MySQL 데이터베이스 관련 서비스


82 ) named

DNS(Domain Name Server)관련 서비스.
DNS서버를 구동한다면 enable.


83 ) netdump

커널 충돌 발생시 oops 메세지와 물리적 메모리 덤프를 netdump-server가 구동되고 있는 서버 장비로 보내는 서비스.
GDB(GNU Project Debugger)와 커널 이미지를 사용해 위에서 발생한 문제를 디버그하는데 사용될 수 있다.


84 ) netfs

부팅시에 NFS, Samba 등 과 관련한 공유된 네트워크 파일 공간을 자동으로 마운트 시키는데 사용되는 서비스.
공유 관련 서비스를 사용하지 않는다면 disable.


85 ) netplugd

네트워크 인터페이스를 모니터링하고 상태 변경시 각종 명령들을 수행을 하는 서비스.
필요없다면 disable.


86 ) netconsole

시스템으로 부터 출력된 장치에 대한 것을 원격으로 알려주는 syslog에 기록해주는 데몬


87 ) network

부팅시에 모든 네트워크 인터페이스를 시작하도록  설정하는 데몬.
인터넷에 연결하는 시스템은 반드시 enable.


88 ) nfs & nfslock

Unix/Linux/BSD 계열의 운영체제들 사이에서 네트워크 파일을 공유할때 쓰이는 서비스.
NFS 공유를 사용하지 않는다면 disable.


89 ) nscd

이름 서비스 요청을 위한 캐쉬를 제공해준다.
프로그램을 실행하기 위해 암호와 그룹 등을 조사하고 그 결과를 다음 쿼리를 위해 저장한다.
NIS와 LDAP와 같은 서비스 요청에서 속도 향상을 가져 올 수 있다.


90 ) ntpd

네트워크를 통해 리눅스 서버의 시간을 동기화 하기 위한 데몬


91 ) ntpdate

시스템 시간을 특정서버의 시간과 동기화 할수 있음. 단 ntpd 혹은 xntpd와 같은 데몬이 구동되어 있을경우에는  해당 데몬을 내리고 사용 가능함


92 ) ospf6d

Zebra와 ipv6등에서 사용하기 위한 OSPF 라우팅 데몬 스크립트


93 ) ospfd

Zebra등에서 사용하기 위한 OSPF v2 데몬 스크립트


94) pand

블루투스관련 데몬으로 이더넷 네트워크상의 연결을 허용시키는 역할을 함.
블루투스 기능을 사용하지 않는다면 disable.


95) pcscd

스마트카드와 스마트카드 리더를 지원하는 서비스.
스마트 카드를 쓰지 않는다면 disable.


96) portmap

portmapper 데몬으로서  RPC(remote procedure call) 연결을 관리한다.
( NFS and NIS 관련 )


97) privoxy

privoxy 데몬을 시작하거나 종료시키는 스크립트
Privoxy는 쿠키(cookies)관리와 광고파일들을 삭제함으로서 개인정보 보호와 웹페이지 컨텐츠를 필터링하는 보다 향상된  필터링성능을 보유한 웹프락시서버 이다


98) portreserve

포트 맵핑을 막기위해 포트를 예약하는 데몬


99) postfix

sendmail 과 같은 MTA로서 메일을 다른 메일서버로 보내주는 역할을 하는 메일서버 데몬


100) psacct

Process Accounting의 약자로서 모든 사용자들이 수행하는 명령어 및 동적 프로세스의 기록을 남기고 그것들을 추적할 수 있게 하는 데몬.


101) radvd

IPv6 라우트 데몬인 radvd를 시작시키거나 종료시키는 스크립트


102) rawdevices

HDD 파티션과 같은 블록 디바이스를 위한 스크립트.
/etc/sysconfig/rawdevices


103) rdisc

Router Discovery 데몬.
클라이언트 측면에서의 ICMP router discover 프로토콜 서비스를 수행한다.
부팅시에 디폴트 라우트를 포함한 라우팅 테이블을 위치시키기 위해 요청된다.


104) readahead_early & readahead_later

시동시 속도를 향상시키기 위해 응용프로그램을 메모리에 할당하는 서비스.
빠른 부팅을 위한다면 enable.


105) restorecond

SELinux에서의 모니터링과 올바른 파일 문맥을 복원해주는 서비스.
SELinux를 사용하지 않는다면 disable.


106) rhnsd

레드햇 리눅스 소프트웨어의 주기적인 업데이트와 정보를 확인할 수 있는 레드햇 네트워크 질의프로그램인 rhnsd 데몬의  시작과 종료를 하는 스크립트


107) ripd

RIP 라우팅 데몬인 ripd 데몬의 시작과 종료를 하는 스크립트


108) ripngd

zebra와 IPv6 RIP 라우팅 데몬 스크립트


109) rpcgssd & rpcidmapd & rpcsvcgssd

NFS v4를 위한 서비스. NFS v4를 필요로하지 않거나 사용하지 않는다면 disable.
/etc/sysconfig/rhn/rhnsd


110) rsyslog

시스템 로깅 데몬
/etc/rsyslog.conf


111) saslauthd

SASL 라이브러리를 대표하여 인증 요청들을 조정하는 데몬.
슈퍼유저권한의 모든 코드 요청을 하나의 프로세스로 떼어놓고  그것을 이용해 클라이언트에게 대리 인증을 제공하는데 쓰인다.
*SASL(Simple Authentication and Security Layer) ::
인터넷 프로토콜들의 인증과 데이터 보안을 위한 프레임워크.


112) sendmail

메일 서버 데몬.
sendmail로 메일 서버를 사용하지 않는다면 disable.


113) single

시스템 실행레벨 1로 가고자 할때 사용하는 스크립트.
이 스크립트가 실행되면 시스템의 모든 프로세스들을 죽인 다음 시스템을 실행레벨 1 상태로 만들어 준다


114) smartd

SMART (Self-Monitoring, Analysis and Reporting Technology)의 약자.
디스크 모니링을 하고 disk failer또는 하드디스크의 문제를 예측하는 서비스이다.


115) smb

Samba 서비스. 리눅스와 윈도우즈 간의 파일 공유에 필요한 데몬.
Samba 서비스를 이용하지 않는다면 disable.


116) snmpd

SNMP(Simple Network Management Protocol) 데몬.
시스템의 네트워킹 상태를 모니터링하고 관리하는 데몬.
SNMP 요청 패킷에 응답하는 역할을 함.
네트워크 모니터링 툴을 사용하지 않으면 disable.


117 ) snmptrapd

SNMP(Simple Network Management Protocol) TRAP 데몬
SNMP의 응용 데몬이며 SNMP TRAP message를 받고 기록한다
Trap message : 특정 상황을 서버로 보고하기 위한 메세지.
SNMP 서비스를 사용하지 않으면 disable.


118) spamassassin

텍스트 분석을 사용하여 스팸인지를 확인하는 메일 필터 서비스.
메일 서비스를 사용하지 않는다면 disable.


119) squid

프록시 서버 데몬.
프로시 서버를 구동하지 않는다면 disable.


120) sshd

다른 시스템에서 원격 텍스트 환경으로 서버를 접속할 수 있게하는 데몬.
telnet과 비슷하지만 암호화의 장점을 지님.


121) sssd

시스템 보안 데몬


122) swat

삼바 웹관리툴 데몬 프로그램


123) syslog

여러가지 데몬들로부터 생성된 시스템 이벤트 기록을 로그파일에 저장하는데 사용하는 데몬.


124) sysstat

sysstat 자원감시 도구 모음


125) vncserver

원격 접속으로 그래픽 환경의 관리를 할 수 있게 하는 데몬.
원격 접속을 사용하지 않는다면 disable.


126) winbind

Samba의 한부분을 차지하는 데몬이며, 윈도우 도메인 유저를 유닉스기반의 유닉스 유저처럼 사용하는 것을 가능하게 한다.
Samba 서비스를 이용하지 않는다면 disable.


127) xinted

Extended Internet services daemon의 약자.
네트워크와 연관된 데몬들을 요구에 의해 실행 하는 슈퍼데몬.


128) xfs

리눅스 부팅과 종료시에 X윈도우 폰트서버(Xfintserver)를 실행하고 중지하는 스크립트


129) ypbind

NIS/yp 클라이언트를 실행하고 정보를 묶어서 NIS 도메인으로 보내는 서비스.
yp는 yellow page의 약자로 전화번호부의 노란페이지와 같은 개념의 인터넷의 사이트 목록을 분야별로 정리해 놓은 자료들의 NIS디렉토리이다.
NIS 를 사용하지 않으면 disable.


130) yppasswdd

YP 환경하에서 사용자의 password를 변경할 수 있는 yppasswdd 데몬을 시작하는 스크립트


131) ypserv

NIS 서버데몬 프로그램


132) ypxfrd

ypxfrd 데몬을 실행하는 스크립트
ypxfrd는 YP 매핑서버(map server)로서 yp 맵을 가속전송하기 위하여 ypserv데몬에 부가적으로 실행되어야하는 데몬


133) yum-updatesd

소프트웨어 업데이트를 체크하고 메일 또는 syslog 메세지로 통지하거나  자동으로 업데이트를 설치하는 서비스.


134) zebra

GNU하에서 개발된 Zebra 라우팅 매니저 데몬을 실행하는 스크립트

Zebra는 일종의 라우팅 데몬으로서 지원하는 프로토콜에는 RIPv1,Ripv2,RIPng,OSPF,OSPF6,BGP4+,BGP4- 등이 있다


반응형

'Linux' 카테고리의 다른 글

Linux kdump  (0) 2018.08.08
Linux Autofs  (0) 2018.08.08
Linux 실시간 명령어 (watch, while)  (0) 2018.08.08
Linux RPM  (0) 2018.08.08
Linux YUM  (0) 2018.08.08
728x90
반응형
ECC란?


  • 읽혀지거나 전송되고있는 data에 대해 오류가 생겼는지 검사하고 필요하면 전송 중에 정정될 수 있게 한다.
  • 오류를 검출할 뿐 아니라 정정한다는 측면에서 패리티 검사와는 다르다.
  • ECC는 데이터 속도의 증가와 함께 점차 데이터 저장이나 전송을 위한 하드웨어 내에도 적용되고 있다.


동작원리

  1. 하나의 데이터 단위, 즉 "워드"가 램이나 보조기억장치에 저장될 때, 그 워드 내의 비트 순서를 나타내는 코드가 계산되어 그 데이터와 함께 저장된다.
    64 비트 길이의 워드 각각에는 이 코드를 저장하는데 필요한 여분의 7 비트가 소요된다.
  2. 데이터 단위를 읽어낼 때, 지금 읽으려고 하는 워드의 코드를 원래의 알고리즘을 이용해 다시 계산한다. 새로 생성된 코드와 그 워드가 저장될 때 생성되었던 코드를 비교한다.
  3. 만약 두 코드가 일치하면, 그 데이터에는 오류가 없다고 보고, 내보낸다.
  4. 그러나 만약 그 코드들이 일치하지 않으면, 코드 비교를 통해 잘못되었거나 빠진 비트들을 결정한 뒤, 그 비트를 정정한다.
  5. 그 데이터가 아직 저장 장치 내에 있을 때에는 정정을 위한 시도가 일어나지 않는다. 결국, 그것은 새로운 데이터에 의해 덮어씌워질 것이며,
    그 오류들은 일시적이라는 가정 하에 부정확한 비트들은 버려진다.
  6. 시스템이 꺼졌다 켜졌다를 계속해서 반복한 후, 같은 저장장소에서 반복되는 어떤 오류는 영구적인 하드웨어 에러를 의미하므로,
    반복적인 에러가 나는 위치를 나타내는 메시지가 로그에 기록되거나 시스템 관리자에게 보내어진다.





Parity 란?


  • data가 저장장치 내의 한 장소에서 다른 장소로 이동되거나 device간에 전송될 때, 데이터가 유실 또는 손상되었는지 여부를 점검하는 기술과 관련된 용어
  • PCI 버스와 I/O 버스 컨트롤러는 에러 체크를 위해 홀수 패리티 방법을 사용한다. 
  • 패리티 비트의 점검이 절대적으로 확실한 에러점검방법은 아닌데 그 이유는 전송 중 두 비트가(Double Bit)가 동시에 에러 나는 경우 잡아낼 수 없기 때문이다.
    그러나 Device 내에서의 전송에서는 이러한 가능성이 극히 적다고 간주된다.
  • 데이터의 무결성이 지극히 중요한 대형 Device에서는 패리티 체크를 위해 세 비트가 할당된다.


점검원리

  • 패리티 비트는 비트열 내에 추가되어 함께 이동한다. 이 비트는 오직 전송된 비트들이 성공적으로 도착하였는지를 식별하는 목적으로만 사용된다.
  • 비트들이 보내지기 전에 계산을 해서 만약 전체 데이터 비트의 합이 짝수이면 패리티 비트를 1로 설정함으로써 전송되는 모든 비트의 합계가 홀수가 되도록한다.
  • 만약 데이터 비트 값의 합이 이미 홀수라면, 패리티 비트는 0으로 설정된다.
  • 수신측에서는 들어오는 비트를 점검하여 전체 비트 값의 합이 홀수 인지를 확인한다. 이때 합이 짝수라면 전송중 에러가 발생하였다는 것을 의미하며
    그 데이터는 다시 전송되거나 또는 시스템을 멈추고 사용자에게 에러 메시지를 보내지는 등의 조치가 취해진다.





EDAC 란?


  • 하드웨어 에러검출 및 정정을 지원하는 Linux Kernel Module 중 하나이다.
  • PCI 버스 전송에러 및 주변 장치 에러검출도 지원
  • MCE 관련 로그는 OS의 메모리 모니터링 기술 EDAC 기능에 의해 기록되는데 이 기술은 하드웨어의 메모리 모니터링 기술보다 정밀하지 못하다.
    간혹 실제 오류가 없음에도 OS의 EDAC의 민감한 엔진에 의해 오류로 기록되는 경우가 있다.
  • 메시지 발생 시 하드웨어 정보(iLO,IML)을 통해 중복 확인하여 이상이 없는 경우 해당 메시지는 무시하거나 OS의 MCE 감지 기능을 비활성화 하는 것이 좋다.


참조



반응형

'System' 카테고리의 다른 글

HP-UX IP 설정 변경  (0) 2018.08.14
Solaris 네트워크 설정 (고정 IP)  (0) 2018.08.14
Semaphore(세마포어) & Mutex(뮤텍스)  (0) 2018.08.08
System Chunk 개념  (0) 2018.08.08
System 프로세스와 쓰레드 차이  (0) 2018.08.08
728x90
반응형
watch 명령어란?

  • 프로그램을 주기적으로 실행하여 전체 스크린으로 출력


옵션

-n : 실행간격을 변경 (기본 2초)
# watch -n 5 ps -ef


-d : 이어지는 실행결과간의 차이를 강조하여 보여줌
# watch -n2 -d netstat -ni


-t : 기본적으로 맨 위에 표시되는 실행주기, 명령어, 현재시간, 밑의 빈칸을 생략하고 프로그램의 결과값만 출력
# watch -n2 -t netstat -ni



예제

  • 5초마다 특정 포트에 연결된 목록의 갯수 보기
    # watch -n 5 -d 'netstat -an | grep "포트번호" | grep "ESTA" | wc -l'
    # watch -n 5 (5초마다) -d(차이점은 음영으로)
    # netstat -an(connected, listening 소켓 둘다 보여줌, 아이피 그대로 보여줌)
    # grep "포트번호" (포트번호에 해당하는 출력만 보여줌)
    # grep "ESTA" (ESTABLISHED 상태 - 연결된 - 만 보여줌)
    # wc -l (출력 라인의 숫자를 보여줌)

  • 디렉토리 내용의 변경을 감시
    # watch -d ls -l 

  • 사용자가 joe인 파일만 출력
    # watch -d 'ls -l | fgrep joe'


버그

터미널 크기를 변경하면 시간이 지나 다시 한번 실행되어 스크린을 다시 그릴때까지 화면이 망가진채로 남아있다. -d 옵션을 실행하여 생긴 하이라이트도 잃어버린다.
출력문자가 아닌 출력은 출력시에 스크립되어 사라진다. 사리지지 않고 확인하려면 파이프를 통해 " cat -v" 로 출력한다.






while문 사용방법


사용법

# while true; do netstat -ni; sleep 2; done

- sleep x : 초당 간격을 설정 


반응형

'Linux' 카테고리의 다른 글

Linux Autofs  (0) 2018.08.08
Linux 데몬 종류  (0) 2018.08.08
Linux RPM  (0) 2018.08.08
Linux YUM  (0) 2018.08.08
Linux ntpd 설정  (0) 2018.08.08
728x90
반응형
RPM (Redhat Package Manager) : 패키지 관리 프로그램
 

RPM 파일 구조
 
패키지이름-버전-릴리즈.아키텍쳐.rpm
 
패키지이름 : 어떤 패키지인가를 설명해주는 패키지의 이름
버전 : 패키지의 버전을 의미
릴리즈 : 한 버전의 패키지를 몇번 빌드 했는지
아키텍쳐 : 패키지가 사용가능한 시스템


 
사용법

# rpm [옵션파일
 


  옵션

-i : 해당 rpm package를 설치, 이전 버전 설치 되어 있으면 설치하지 않는다

-U : 이전 버전이 설치되어 있다면 업그레이드를 하고, 설치되어 있지 않다면 새롭게 설치 진행

-e : 해당 rpm package를 삭제

-F : 이전 버전이 설치되어 있을 경우에만 설치

-v : 설치 중 메시지를 출력

-h : 진행과정을 #으로 표시

-q : 패키지가 설치되어 있는지 검사

-qa : 설치된 rpm package를 출력
Ex) rpm -qa | more
-qi : 해당 rpm package의 정보를 출력
Ex) rpm -qi glibc
-ql : 해당 rpm package의 파일의 위치를 출력
Ex) rpm -ql glibc
--replacepkgs : 패키지를 교체,패키지가 설치되어 있어도 다시 설치

--replacefiles : 동일한 파일명이 있으면 교체

--oldpackage : 예전 패키지로 교체할 때 사용

--force : --replacepkgs,--replacefiles,--oldpackage옵션을 모두 사용한 것, 강제 설치

--percent : 패키지 파일을 설치할 때 퍼센트 표시

--includedocs : 문서 파일 포함

--excludedocs : 문서 파일은 설치하지 않음

--nodeps : 패키지의 의존성을 무시

--aid : 의존성을 검사하여 의존성 피키지를 자동으로 설치

--test : 패키지를 실제 설치하지 않고 충돌 사항을 점검하여 보고

 



rpm 옵션 예제


일반적인 패키지 설치
 # rpm -ivh [피키지파일]

설치되어 있는 패키지 교체
 # rpm -ivh [패키지파일] --replacepkgs

의존성 에러 존재 시 무시하고 설치할 경우
 # rpm -ivh [패키지파일] --nodeps

패키지 의존성이란? : 어떠한 패키지를 설치할 때 패키지의 동작을 위하여 기본적으로 필요로
  하는 패키지가 있어야 하는 것을 말함

의존성 에러 존재 시 의존성이 있는 패키지들을 먼저 설치한 후 자동으로 설치
  ▶ 첫번째 방법 : 에러가 나는 의존성을 따라가며 설치하기
  ▶ 두번째 방법 : rpm -ivh [패키지파일] --aid

기존 패키지를 업그레이드 하기(설치되어 있지 않은 경우 rpm -ivh 옵션과 동일함)
 # rpm -Uvh [패키지파일]




1. rpm 패키지 설치

- rpm 패키지 초기 설치

rpm -ivh jdk-6u26-linux-i586.rpm
rpm –ivh http://isoredirect.centos.org/centos/5/os/i386/centos/mc-4.6.1a-34.el5.i386.rpm


- rpm 패키지 업데이트 할경우

# rpm -Uvh jdk-6u26-linux-i586.rpm

(업데이트시만 사용하는것이 아니라 초기 설치시도 패키지가 설치되어 있지 않은경우 알아서 설치하기 때문에 이명령어를 많이 사용됨)



2. rpm으로 설치된 패키지의 확인

# rpm -qa 패키지명 or rpm-qa | grep 패키지명

(ex, rpm -qa | grep jdk)


3. rpm 패키지 삭제

# rpm -e 패키지명 (ex, rpm -e java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.el6.x86_64)

 만약 아래와 같은 에러가 발생하며 rpm 모듈 삭제 실패가 뜰경우는 java는 libvirt-java-0.4.7-1.el6.noarch 의존성 패키지가 필요해서 발생하는 메시지다.

error: Failed dependencies:
java is needed by (installed) jna-3.2.4-2.el6.x86_64
java >= 1.5.0 is needed by (installed) libvirt-java-0.4.7-1.el6.noarch

이런경우, 패키지 의존성을 무시한채 삭제 할수 있다

# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.el6.x86_64

또는 yum을 이용하여 삭제 가능하다 (다만 redhat linux 같은 경우 정식 구매된 버전에 한해서 가능하다)

# yum remove java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.el6.x86_64

 

4. 현재 rpm 패키지에 의존된 모듈확인

# rpm -qR 패키지명 (ex, rpm -qR java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.el6.x86_64)



5. RPM(Redhat Package Manager)에서 특정 패키지 복원시키기
# rpm2cpio filename.rpm | cpio -l -make -deretories -E filename


반응형

'Linux' 카테고리의 다른 글

Linux 데몬 종류  (0) 2018.08.08
Linux 실시간 명령어 (watch, while)  (0) 2018.08.08
Linux YUM  (0) 2018.08.08
Linux ntpd 설정  (0) 2018.08.08
Linux du  (0) 2018.08.08
728x90
반응형
yum


◆ 설명

1. Yum은 Yellow dog Update라고도 하고 Duke University에서 RPM 설치를 개선하기 위해 개발한 패키지 관리자

2. Yum은 패키지 저장소를 수요되는 패키지를 검색하고 다운로드 하여 설치까지 처리하면서 패키지들의 의존성을 고려하여 설치할때 패키지 의존성에 대한 error를 줄일 수 있다

3. Yum은 /etc/yum.conf라는 설정파일을 사용

4. rpm은 rpm으로 설치하는 것이 일반적. 그러나 yum으로도 설치가 가능하다. yum으로 설치하면 "yum list"에도 보이게 되는 장점이 있다.



사용법

# yum [옵션] [모드] 패키지



옵션

-y : 설치여부를 묻지 않고 설치



모드

install : 패키지 설치

check-update : 업데이트 check

update : 업데이트 설치

update-to : 지정된 업데이트 설치

remove : 패키지 삭제

info : 패키지 정보 표시

localinstall : 다운로드 한 패키지 설치





YUM 명령어 정리


◆ 현재 설치된 패키지에 문제가 있는지 검사함

# yum check [패키지]
 
Ex) # yum check
    
     # yum check yum.noarch

 

◆ 업데이트가 필요한지 검사함

# yum check-update [패키지]

Ex) # yum check-update

    # yum check-update yum.noarch

 

◆ 캐시 된 데이터를 제거

# yum clean



◆ 캐시되어 있는 것을 모두 지움

# yum clean all

 

◆  패키지에 대한 의존성을 테스트

# yum deplist [패키지]

Ex) # yum deplist openssh-5.3p1-94.el6.x86_64



◆ 최신 버전으로 설치 패키지를 동기화

# yum distribution-synchronization



◆ 설치된 패키지를 다운그레이드

# yum downgrade

Ex) # yum downgrade mysql

     

◆ 설치된 패키지(들)를 시스템에서 삭제

# yum erase [패키지1, 2...]
 
  Remove a package or packages from your system.



◆ 그룹 패키지의 정보를 출력

# yum groupinfo

Ex) # yum groupinfo "E-mail server"

   

◆ 지정한 그룹에 속한 모든 패키지를 설치

# yum groupinstall [그룹]

Ex) # yum groupinstall "E-mail server"
 


◆ 패키지 그룹의 리스트를 출력

# yum grouplist

  - Installed Groups : 설치된 그룹들

  - Available Groups : 사용가능한 그룹들

  - Avaliable Language Groups : 사용 가능한 언어 그룹

Ex) # yum grouplist "System Management"



◆ 그룹에 속한 모든 패키지를 시스템에서 삭제

# yum groupremove [그룹]

Ex) # yum groupremove "E-mail server"

 

◆ yum의 도움말을 출력

# yum help

 

◆ yum 패키지에 대한 최초 설치 및 업데이트 등 히스토리를 출력

# yum history

 

◆ 서버상에 존재하는 패키지에 대한 정보를 출력

# yum info [패키지]

Ex) # yum info "ypbind"



◆ 서버상에 존재하는 업데이트가 필요한 패키지에 대한 정보를 출력

# yum info updates [패키지]



◆ 시스템에 선택한 패키지를 설치

# yum install [패키지1, 2, ...]

Ex) # yum install "yum.noarch"



◆ 서버에 있는 그룹 및 패키지의 리스트를 확인 (서버에 있는 모든 리스트가 다 나온다. grep으로 검색해야 함)

# yum list

Ex) # yum list | grep 'yum.noarch'

    # yum list [정규식]

    # yum list [*/?]

 

◆ 시스템에 설치가 가능한 모든 패키지를 출력

# yum list all

  

◆ 현재 시스템에 설치된 패키지들 중에 업데이트가 필요한 리스트를 출력

# yum list updates

Ex) # yum list updates glib2.x86_64

 

◆ 현재 시스템에 설치된 패키지들을 출력

# yum list installed

Ex) # yum list installed 'yum.noarch



◆ 파일 이름에서 저장된 트랜잭션을 로드

# yum load-transaction



◆ 메타 데이터 캐시를 생성

# yum makecache



◆ 파일이 제공하는 패키지 정보의 출력
 
# yum provides

# yum whatprovides

# yum provides /bin/gzip

 

◆ 선택한 패키지를 다시 설치

# yum reinstall [패키지]

Ex) # yum reinstall "yum.noarch"

 

◆ 구성된 소프트웨어 저장소를 표시

# yum repolist



◆ 주어진 의존성을 제공하는 패키지를 결정
 
# yum resolvedep


 
◆ 서버에 존재하는 리스트의 파일명과 summary에서 지정한 단어가 포함되어 있는 패키지의 파일명과 설명을 출력

# yum search

Ex) # yum search "yum"



◆ 파일명과 summary외 모든 항목에서 지정한 단어가 포함된 것들을 출력

# yum search all

Ex) # yum search all "yum"

 

◆ yum Shell에 들어가서 관련한 명령어들을 실행

# yum shell

 

◆ 시스템에 설치되어 있는 패키지를 업데이트 (설치되어 있는 패키지 중 업데이트가 필요한 것들에 대하여 다운로드 및 설치를 진행)

# yum update

 

◆ 시스템에 설치되어 있는 패키지를 업그레이드

# yum upgrade

 

◆ 설치되어 있는 yum 패키지의 정보를 출력

# yum version



◆  불완전하게 설치된 패키지나 YUM 설치중 장애가 발생한 패키지를 복구하여 설치하는 명령어

# yum-complete-transaction [options]  



◆  yum repository의 rpm 의존성을 체크

#repoclosure --repofrompath=base,/xxx/yyy/x86_64/BASE/RPMS/

--repofrompath=update,/xxx/yyy/x86_64/UPDATE/RPMS/

yum 이용하여 repository(저장소)를 구축한 경우,repository 안에 rpm의 의존성을 체크할 필요가 있다.

repository의 rpm의 의존성이 맞지 않는 경우 yum을 이용한 설치시에 의존성 에러가 발생하기 때문이다.

하지만 rpm 의존성을 수동으로 확인하는 것은 매우 어렵고 고난도의 작업이다.

때문에 최신의 yum-utils 패키지 안에는 repoclosure라는 툴을 제공한다.

1. base, update 는 구분되기 위한 아무 이름이나 넣으면 된다.

2. 명령의 "," 좌우로 공백(space)를 넣으면 안된다.

3. 디렉토리가 더 많은 경우에는 --repofrompath 를 계속 반복한다.

이 명령어의 결과는 yum 으로 설치 할경우와 100%동일하지 않다.

그 이유는 rpm의 Obsoletes 태그와 같은 일부 rpm 의존성등은 처리가 안되기 때문인데,

이렇게 한두개 나온 의존성 문제는 스스로 확인이 필요





YUM Repo가 꼬였을 경우 초기화


◆ yum repository가 꼬였을 경우 yum 초기화하기


◆ yum 명령어를 이용해서 어플리케이션을 설치하다보면 가끔 repository가 꼬여서 yum install 등 옵션이 구동되지 않을때 사용


◆ 방법 

1. /etc/yum.repos.d/ 이동해서 repository 지우기

# cd /etc/yum.repos.d/ //repository 저장 디렉토리로 이동
# ls -al  // repository 확인
# rm -f 삭제할 repository  // base는 지우시면 안돼요. 지웠다가 낭패 봤어요...
# ls -al  // 확인


2. /var/cache/yum/에서 캐쉬디렉토리 삭제

# cd /var/cache/yum/
# ls -al // 캐쉬 디렉토리 확인
# rm -rf x86_64


3. headers, packages, metadata 삭제

# yum clean headers
# yum clean packages
# yum clean metadata






yum의 작동 방식




◆  #

주석이므로 없는 것과 마찬가지다.



◆  name

저장소의 이름이다. 보기 편한 이름으로 아무 이름이나 지정해도 되며, 별로 중요하지 않다.



◆  failovermethod

'yum' 명령은 baseurl에 적혀 있는 URL에 접속하는 데, 이때 필요한 접속 방식을 정한다. priority 와 roundrobin 중 하나를 설정할 수 있으며, 이 행의 설정 값을 생략하면 priority가 기본값이 된다. priority는 이어서 나오는 baseurl에 여러 개의 URL이 적혀 있으면 가장 먼저 적혀 있는 URL부터 차례대로 접속을 시도한다. roundrobin은 baseurl에 여러 개가 적혀 있는 URL 중 임의로 선택된 URL에 접속한다.



◆  baseurl

URL 이 적혀 있어야 한다. http, ftp, file 3가지 중 하나가 오면 된다. 독자가 저장소의 URL을 정확히 안다면 직접 적어도 된다. 또, 여러 개가 이어져서 나올 수 있다.



◆  mirrorlist

baseurl에 설정 값이 생략되어 있으면, 대신 mirrorlist에 적혀 있는 URL이 사용된다. mirrorlist의 URL에는 전 세계에 분포된 여러 개의 저장소가 연결되어 있다.



◆  enabled

이 저장소를 사용할지 여부를 1(사용), 0(사용 안 함)으로 지정할 수 있다. 이 행을 생략하면 기본값은 1이다.



◆ metadata_expire

다운로드한 메타 데이터(패키지의 목록)가 만료되는 기간을 지정한다. 'd'는 days, 'h'는 hours, 'm'은 minutes 단위로 설정할 수 있다. 이 행은 생략해도 된다.



◆ gpgcheck

패키지의 GPG 서명을 확인할지 여부를 1(사용), 0(사용 안함)으로 지정할 수 있다. 1로 지정할 경우, 이어서 gpgkey 항목을 반드시 설정해야 한다.


[gpg 개념]

1. GPG 서명은 GnuPG(Gnu Privacy Guard)라고도 부르는데, rpm 패키지를 인증할 때 암호화된 서명을 사용하는 방법

2. 페도라 프로젝트에서 제공하는 rpm 패키지는 GPG 서명을 함으로써 잘못된 패키지가 설치되는 일을 방지

3. 메시지나 파일을 암호화하여 전송할 수 있는 툴. 소스를 배포하는 각종 프로그램의 변조 유무를 검사할 수 있는 프로그램

4. 배포자의 서명과 서명된 파일이 제공되므로 소스에 대한 무결성 검사

5. 메일이나 중요한 데이터에 대해 서명과 함께 전송함으로써 허가된 사용자만 해당 데이터를 볼 수 있는 권한을 부여

6. 보안 메일, 전자 서명 시스템에서 응용 가능



◆  gpgkey

아스키 GPG 키가 들어 있는 저장소의 URL이 적혀 있으면 된다.


이 중에서 꼭 필욘한 것은 [식별자]와 name, baseurl, gpgcheck 정도





yum 고급 옵션 


◆ 여러개의 yum repository가 있을 경우 사용할 repos 를 지정, * 같은 wildcard를 사용할 수 있다

-enablerepo=[repo]     



◆ 사용하지 않을 repos 를 지정한다. wildcard 사용 가능

--disablerepo=[repo]     



◆ GPG 서명검증을 사용하지 않는다. 해당 repos 의 공개키가 없어서 서명검증에 실패할 경우에 사용
--nogpgcheck     



◆ debugging level을 지정한다. 0 - 10 까지 가능하며 숫자가 클수록 자세한 정보를 출력

-d [debug level]     



◆ yum 진행중 나오는 질문을 모두 yes 로 처리한다. 삭제할 경우에는 의존성있는 모든 패키지까지 삭제되므로 주의

-y, --assumeyes    



◆ yum repository 를 제공하지 않고 rpm 으로만 제공하는 패키지가 있을 경우 (Ex: MySQL) 유용한 명령어다.

# yum localinstall

rpm 을 로컬에 다운로드하고 yum localinstall 로 설치하면 된다.

rpm -ivh 로 설치할 수도 있지만 yum  으로 작업하면 transaction 기록이 남으므로 yum history 를 사용하여 rollback 이 가능하다.

rpm 제작사의 서명이 없어서 에러가 날수 있으므로 --nogpgcheck 옵션을 추가해야 할 경우도 있다.





yum 플러그인


◆ downloadonly plugin

package 를 설치하지 않고 rpm 을 다운로드만 해주는 플러그인



download 시에는 --downloadonly 옵션을 붙여서 yum 을 실행



RHEL7 or CentOS7 에서는 변경







반응형

'Linux' 카테고리의 다른 글

Linux 실시간 명령어 (watch, while)  (0) 2018.08.08
Linux RPM  (0) 2018.08.08
Linux ntpd 설정  (0) 2018.08.08
Linux du  (0) 2018.08.08
Linux sort  (0) 2018.08.08
728x90
반응형
ntpd란?


- ntpd는 ntp 서버를 참조해 시스템 클록을 보정하면서 클라이언트에 시간을 제공하는 데몬

- 라디오나 원자시계에 맞추어 시간을 조정하며 밀리초 1/1000초 단위까지 시간을 조정가능

- ntp 방식은 straum이라는 계층 구조를 가진다.
  • straum 0 : GPS나 세슘원자 시계등 시간을 구하는 장비
  • straum 1 : GPS나 세슘원자 시계등에서 직접 시간을 동기화하는 서버를 의미
  • straum 2,3 : 트리구조를 형성하는데 보통 straum 2에서 동기화하고
                       straum 3 서버에서 나머지 서버들을 peer로 해서 동기회 시키므로 straum 1 서버들의 부하를 줄인다.
  • 값이 너무 낮으면 (Server dropped : strata too high) 이런 에러가 발생하니 적당히 낮은 수치로 설정
  • 1 혹은 2는 외부 ntp 서버값으므로 사용을 안하는 것이 좋음

- ntp는 UDP 123을 기본 포트로 사용하므로 포트 개방이 필요하다

- 우리나라에서 운영되고 있는 ntp 서버는 아래와 같다
  • kr.pool.ntp.org
  • time.bora.net
  • time.nuri.net





ntp 사용법


설치 및 확인

# yun install ntp

# rpm -qa | grep ntp


ntp 설정

1) ntp 설정파일 수정 
# vi /etc/ntp.conf
- 클라이언트의 경우 해당 파일에 ntp 서버의 IP가 입력되면 된다. Ex) server 192.168.10.10



  • /etc/ntp.conf 와 driftfile 과 keys의 경우 배포판마다 위치가 다를 수 있으니 확인
  • driftfile은 시간 오차치를 보존해 두는 파일로 ntpd 데몬에 의해 자동생성
  • key 파일은 인증받기 위한 파일
  • restric 설정은 peer 들이 본 서버로 sync를 하는 것을 제한
  • restric default nomodify notrap noquery 설정은 기본으로 모든 권한을 주지 않음을 의미
  • restrict 127.0.0.1 설정은 127.0.0.1 즉, 서버 자신에서는 모든 권한을 가진다
  • restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap 설정은 192.168.0.0 ~ 192.168.0.255 c 클래스에서는
    질의를 할 수 있는 권한을 가진다. 즉 위의 2라인은 항상 기본으로 들어가는 설정이며 peer를 거느릴 서버는
    하위 peer들의 질의를 받을 수 있도록 3번째 라인과 같이 restrict 설정을 해주어야 한다.
Tip
iburst 옵션이 없으면 ntpd 데몬이 시작하는 시점에서 시스템 시간이 약 10분이상 틀어져 있을 경우 동기화하는데 시간이 오래걸린다.
해당 옵션을 주면 동기화 시간을 단축할 수 있다.
Ex) server 192.168.10.10 iburst


2) 시작프로그램에 등록
# chkconfig --level 2345 ntpd on

3) ntp 서비스 시작
# service ntpd start



4) ntp 동기화 확인

# ntpq -p



  • * : 현재 sync를 받고 있음
  • + : ntp 알고리즘에 의해 접속은 가능하지만 sync를 하고 있지 않음
  • - : ntp 알고리즘에 접속은 가능하지만 sync 가능 리스트에서 제외
  • blank(빈칸) : 접속이 불가능함을 의미

5) ntpstat

# ntpstat







ntpdate 사용하기


- ntpdate는 서버 시작시 실행되도록 하는것이 좋다. (DB 서버 및 시간에 민감한 서버는 제외)

- 시스템이 부팅될 때 메인보드 CMOS Clock(하드위어 시계)에 의해 OS 시간이 결정되는데
이때 CMOS Clock이 맞지 않을 경우 ntpd에 의해 ntp 서버와 동기화 될때까지 시간이 틀어져 있게 된다.

- ntpdate는 시스템 부팅 때 ntpd 보다 먼저 실행이 되어 ntp 서버와 즉시 동기화를 하므로 어플리케이션 서비스가 구동되기전에 정확한 시간을 보장


설치 및 확인

# yum install ntpdate

# rpm -qa | grep ntpdate


명령어 사용법

# ntpdate time.bora.net
# ntpdate -s 192.168.10.10


옵션

-s : 결과를 화면이 아닌 syslog로 보냄

-u : ntp 프로토콜은 UDP 123 포트를 사용하는데 이 포트가 방화벽등으로 막혀있는 경우 다른 포트를 이용

-b : settimeofday() 시스템 콜로 즉시 시간을 동기화

-B : adjtime() 시스템 콜로 천천히 시간 동기화 (점근적 시간 보정 방식으로 커널 클럭을 조정)

ntpdate의 경우 settimeofday(), adjtime()의 2가지 시스템 콜로 시간을 설정하는데  -b,-B 옵션을 지정하지 않으면
현재 시스템 시간과 128MS 이상으로 차이가 나면 settimeofday()를 이내면 adjtime()을 사용한
부팅할 때는 ntpdate -b로 설정하고 정기적으로 시간을 조정할 때는 옵션없이 ntpdate를 사용하는 것을 권장





rdate 사용하기


rdate : 원격 타임서버로부터 날짜시간 정보를 받아와 보여주거나 설정하는 명령어

clock : 시스템 CMOS 시간을 현재시간으로 재설정하는 명령어 (리눅스에만 존재)


설치 및 확인

# yum install rdate

# rpm -qa | grep rdate


명령어 사용법

# rdate 192.168.10.10

# rdate -p 192.168.10.10


옵션

-4 : IPv4만 사용

-6 : IPv6만 사용

-o NUM : 지정한 포트(NUM)으로 연결

-p : 호스트의 정보만 출력하고 설정은 안함

-s : 설정만 하고 내용은 출력 안함

-u : TCP 대신 UDP 사용

-v : 상세한 정보 출력

-w : 시스템 시간을 CMOS시간으로 변경





ntpq 사용하기


- ntpd가 정상적으로 작동하지는 확인할 수 있다.


명령어 사용법

# ntpq -p



출력 의미



  • reach 값이 377에 도달하면 동기화가 완료 (보통 6~10분 사이에 동기화)





clock 사용하기 


- CMOS의 시간을 변경할 수 있는 명령어 (리눅스만 사용가능)

- CMOS의 시간을 OS 시간으로 설정할 수 있고 반대로 OS 시간을 CMOS 시간으로 설정할 수 있다


명령어 사용법

# clock -w


옵션

-u : CMOS 시간을 국제시간으로 조정

-r : CMOS 시간을 출력

-w : OS 시간으로 CMOS 시간을 설정

-s : CMOS의 시간으로 OS 시간을 조정

-a : CMOS의 시간으로 OS 시간을 조정하고 다시 CMOS에 조정





윤초 (ntp slew)


1) 윤초란?

- 평균 태양시에 맞추기 위해 가끔식 UTC(세계 협정시)의 1초를 수정하는 것 (시스템고장의 원인이 될 수 있다)


2) 예상되는 영향

•    어플리케이션 속도 저하
•    어플리케이션 충돌 및 시동실패
•    Kernel Deadlock
•    윤초 loop 현상
•    CPU 사용 증가


3) 윤초 대응방법


•    커널 버전 확인 -> 각 RHEL 버전별 다음의 커널 버전 이상으로 업데이트를 권고 (이전 커널에 시스템 행 버그가 있음)
- RHEL4 : kernel-2.6.9-89.EL 또는 이후
- RHEL5 : kernel-2.6.18-164.el5 또는 이후
- RHEL6 : kernel-2.6.32-358.el6 또는 이후
- RHEL7 : 기본 커널 대응

•    NTP 또는 PTP를 사용해 시간 동기화하는 환경 -> tzdata 업데이트 (optional)
주의) 단 패키지 업데이트만, /etc/localtime 링크는 절대로 변경하지 않음

1-1) Leap Second 시간 즉시 적용 가능한 경우
- 위에 설명된 커널 버전이 최신인지 확인
- 특별한 작업 불필요
- 개별 3rd-party 솔루션이 Leap Second 예외에 대응할 수 있는지 확인

1-2) Leap Second 적용하지 않고 천천히 1초를 동기화 해야 하는 경우
- 이전 버전의 커널을 사용하고 업데이트가 불가능 한 경우 또는 Leap Second을 즉시 적용하지 않고 천천히 동기화 하고자 하는 경우
- ntptime 초기화 후 slew mode로 재시작 (다음과 같이 -x 옵션 추가)
주의) Slew mode의 경우 시간 Jump가 없는 대신 시간 GAP이 발생한 경우 동기화에 더 오랜 시간이 소요

# service ntpd stop

# ntptime -s 0 -f 0

# cat /etc/sysconfig/ntpd
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g -x"

# service ntpd start

주의) RHEL6의 경우 ntp 패키지를 반드시 ntp-4.2.6p5-3.el6_6 또는 이후 버전으로 업데이트

•    별도의 자체 NTP 서버를 운영해 동기화 하고 있는 환경
- NTP 서버가 공식 상위 Stratum NTP 서버와의 동기화(권장) 되었는지 점검
- 만약 외부와 동기화 되지 않은 자체 RHEL기반 NTP 서버의 경우 Leap Second 인지 불가능,

2015년 7월 1일 09시 00분(KST 기준) 이후 외부와의 시차 1초 발생
- 자체 NTP 서버측 : 필요시 수동으로 NTP 서버 시간 조정으로 동기화
- NTP 클라이언트측 : 1) 대응 방안 적용

•    NTP 또는 PTP를 사용하지 않는 경우

1-1) Leap Second 인지가 꼭 필요한 경우
- 가능하면 6월 이전에 일정을 잡고 tzdata 패키지 업데이트
- https://rhn.redhat.com/errata/RHEA-2015-0141.html
- Timezone 파일 변경

# cp /usr/share/zoneinfo/right/Aisa/Seoul /etc/localtime

- 재부팅으로 시스템에 POSIX Time 적용
주의) 향후 NTP 동기화시 Timezone 원복 필요

1-2) Leap Second 인지 없이 향후 수동 조정 가능한 경우
- tzdata 업데이트는 선택
- 향후 수동 시간 조정
주의) 단 패키지 업데이트시 /etc/localtime 링크는 절대로 변경하지 않음


[Summary]

1. 커널 버전 확인 후 업데이트 (공통사항)

2. NTP서버 구축 환경에 맞게 조치
1) NTP 또는 PTP를 사용해 시간 동기화하는 환경
- tzdata 패키지 업데이트 or slew mode에 -x 옵션 추가 (선택)

2) 별도의 자체 NTP 서버를 운영해 동기화 하고 있는 환경
- 자체 NTP 서버가 윤초 이슈를 해결한 서버일 경우 클라이언트도 동일하게 적용됨
(NTP 서버가 리눅스 서버일경우 '1)' 안을 적용)

3) NTP 또는 PTP를 사용하지 않는 경우
- tzdata 업데이트 


반응형

'Linux' 카테고리의 다른 글

Linux RPM  (0) 2018.08.08
Linux YUM  (0) 2018.08.08
Linux du  (0) 2018.08.08
Linux sort  (0) 2018.08.08
Linux mount and umount(마운트&언마운트)  (2) 2018.08.08
728x90
반응형
du


- 현재 Disk의 사용 용량을 확인할 수 있는 명령어


옵션

-a : 모든 파일들의 기본정보를 보여준다
-b : 표시단위를 기본 KB대신 Byte로 한다
-k : 표시단위르 KB단위로 한다
-h : 사용량을 1K, 234M , 2G 등의 형태로 보여준다
-c : 모든 파일의 디스크 사용정보를 보여주고 나서 합계를 보여준다
-s : 총 사용량만 표시한다
-x : 체크하는 경로안에 다른 시스템이 있으면 생략한다
-D : 심볼릭 링크 파일이 있을경우 원본의 값을 보여준다
-L : -D 옵션과 같다





사용 예제


1) 현재 디렉토리(하위디렉토리 포함)의 사용용량 확인
# du -sh .

2) 디렉토리내의 각각 디렉토리로 확인
# du -h .

3) 큰 용량 순대로 정렬
# du -sh | sort -rn

4) 유저별로 사용량 점검

# du -h --max -depth=1 /home 


반응형

'Linux' 카테고리의 다른 글

Linux YUM  (0) 2018.08.08
Linux ntpd 설정  (0) 2018.08.08
Linux sort  (0) 2018.08.08
Linux mount and umount(마운트&언마운트)  (2) 2018.08.08
Linux SCP  (0) 2018.08.08
728x90
반응형
sort


- 사용자가 지정한 파일의 내용을 정렬하거나, 정렬된 파일의 내용을 병합할 대 사용


옵션

-n : 라인의 각 필드를 비교하는 대상을 숫자로 한정
-f  : 영어를 정렬할 때, 대소문자 구별안함
-r : 출력 순서를 역순으로
-b : 앞에 붙는 공백 무시
-t : 필드 구분자 지정
-m : 정렬된 파일을 병합
-u : 정렬후, 중복행 제거
-o : 저장할 파일명을 명시, 명시하지 않으면 화면에 출력





사용 예제


1) 역순으로 정렬
# cat /etc/passwd | sort -r

2) 파일이 정렬되어 있는지 검사
# cat /etc/passwd | sort -c

3) 파일의 대소문자를 구분하지않고 정렬
# cat /etc/passwd | soft -f

4) 정렬하고 중복을 제거
# cat /etc/passwd | sort | uniq -c
  • 단일 키워드로 grep을 여러번 구하는 검색하는 것보다 하나의 필드를 일룔로 구한 후
    sort | uniq -c를 사용하면 한번에 모든 데이터의 합계를 집계할 수 있어 효율적

5) 정렬 후 파일로 저장

# sort /etc/passwd -o output.txt


반응형

'Linux' 카테고리의 다른 글

Linux ntpd 설정  (0) 2018.08.08
Linux du  (0) 2018.08.08
Linux mount and umount(마운트&언마운트)  (2) 2018.08.08
Linux SCP  (0) 2018.08.08
Linux yum local repo 추가  (0) 2018.08.08
728x90
반응형
Mount&Umount (마운트&언마운트)


- 여러가지 하드웨어장치들을 사용하러면 시스템에 인식을 시켜야하는데 이를 가능하게 해주는 것


사용법

# mount /dev/sda3 /mnt

# umount /mnt


옵션 (mount)

-a, --all : fstab 파일에 언급된 모든 파일시스템을 마운트
-v, --verbose : 자세한 출력 모드
-f, --fake : 실제 시스템 호출은 하지 않고 마운트할 수 있는지 점검 (보통 -v 플래그를 써서 mount 명령의 결과를 알고자 할 때 유용 )
-n, --no-mtab : /etc/mtab 파일에 쓰기 작업을 하지 않고 마운트 (/etc가 읽기전용 파일시스템인 경우에 필요)
-r, --read-only : 읽기만 가능하게 마운트. ( 같은 옵션으로 -o ro )
-w, --rw : 읽기/쓰기 모드로 마운트. ( 같은 옵션으로 -o rw ) 기본 디폴트값
-t <vfstype> : 마운트할 파일시스템 유형을 명시적으로 지정
-o <options> : 플래그 뒤에 콤마로 분리한 옵션을 적어준다
-M, --move : 마운트되어 있는 파일시스템의 마운트 지점을 다른 위치로 이동
-B, --bind : 기존에 마운트되어 있는 파일시스템을 서브트리의 다른 위치에 한번 더 마운트
(mount 명령어는 디스크 드라이브와 같은 블록 디바이스만 마운트 가능하다.
하지만 --bind 옵션을 사용하면 특정 디렉토리를 다른 디렉토리에 마운트하는 동작을 수행한다.
예를 들어 FTP 루트 디렉토리 외부에 연결된 심볼릭 링크의 사용이 불가능한 vsFTP등에서 심볼릭 링크 대용으로 활용 가능)


마운트 플래그옵션 (파일시스템 속성 설정 옵션)

defaults : rw, suid, dev, exec, auto, nouser, async 속성을 모두 가짐
auto : 부팅시 자동 마운트
noauto : 부팅시 자동마운트 안함
dev : 파일시스템 상의 문자, 블럭 특수 장치를 해석
nodev : 파일시스템 상의 문자, 블럭 특수 장치를 해석 하지 않음
exec : 바이너리 실행파일이 실행되는 것을 허용
noexec : 바이너리 실행파일이 실행되는 것을 허용 안함
(/tmp 디렉토리와 같이 신뢰할 수 없는 사용자도 접근할 수 있는 경우에 보안 향상)
suid : setuid, setgid 의 사용을 허용
nosuid : setuid, setgid의 사용을 거부
ro : 읽기 전용 (read-only)
rw : 읽기/쓰기 (read/write) 가능
async : 파일시스템에 대한 I/O가 비동기적으로 이뤄지게 함
sync : 파일시스템에 대한 I/O가 동기적으로 이뤄지게 함
user : 일반 계정 사용자들도 마운트 할 수 있게 허용
nouser : 일반 계정 사용자가 마운트할 수 없음 (즉, root만 mount 가능)
noatime : 파일 접근시간을 업데이트하지 않는다
(메일 스풀이나 로그와 같이 I/O가 많은 파일시스템에 유용)
remount : 이미 마운트된 파일시스템을 다시 마운트


옵션 (Umount)

-n : /etc/mtab 파일을 갱신하지 않고 마운트를 해제
-v : 자세한 정보 출력
-a : /etc/mtab 파일에 명시된 모든 파일시스템의 마운트를 해제
-t : 파일시스템의 종류
-at : /etc/mtab파일에 명시도니 모든 파일시스템 중 유저가 입력한 파일시스템만 마운트 해제





사용 예제


1) Umount가 되지 않는 경우

# fuser -kfuc [디렉토리]
# fuser -kfuc /mnt

- fuser는 특정 파일이나 파일시스템, 포트 등에서 사용중인 프로세스를 확인할 때 사용하며
지정된 파일과 관련된 프로세스들을 모두 kill시킬 수 있다.

# fuser -ck [Mount된 디렉토리]
# fuser -ck /mnt

- 위 명령으로 프로세스를 kill 하고 umount를 재시도하면 정상적으로 해제된다.

  • 해당 디렉토리를 사용하는 사용자가 누구인지 확인하고 싶을 때
    # fuser -cu /mnt


2) 읽기전용 파티션 읽기/쓰기 가능하게 mount하기

# mount -o remount,rw /
# mount / -o rw,remount

- Disk에 Error 및 fstab 파일을 잘못 수정하거나 리부팅 중 발생되는 mount error 발생시
싱글모드로 부팅하게 되면 / 파티션의 수정이 금지되는데 -o 옵션을 주어
다시 mount를 실행하여 읽기/쓰기 권한을 준다.


3) 현재 시스템 마운트 상황 확인

# cat /proc/mounts

- mount 명령어로 확인하는 것보다 다음과 같이 확인하는 것이 더 정확


4) Tip

- /usr을 별도의 파일시스템에 두면 안된다.
/usr이 / 와 별도의 파일시스템에 있으면 /usr에는 부팅에 필요한 중요 구성요소가 들어 있기때문에
부트 프로세스가 훨씬 더 복잡해지고 어떤 경우(iSCSI 드라이브에 설치하는 경우와 같은)에는
부트 프로세스가 전혀 동작하지 않을 수 있다.






cdrom mount 하는 방법


1) 순서

  1. cdrom에 disk 삽입후
  2. # mkdir cdrom <- cdrom 마운트할 디렉토리생성
  3. # mount /dev/cdrom /cdrom <- cdrom 마운트 (-t iso9660 옵션생략해도됨)
  4. # cd cdrom
  5. # /cdrom/ls <-cdrom에있는 파일들이 있는지 확인


2) 언마운트방법

- 언마운트시 현위치가 #/cdrom/이면 언마운트 안된다.  현위치가 #/cdrom/이시면 #/cdrom/cd ..으로 빠져나온 후

# umount /dev/cdrom 하면 마운트 해제

- 위방법으로도 마운트가 안될시 리눅스에서 cdrom device가 인식이 되어있는지 확인

# cdrom 마운트 후에 cdrom 에 있는 실행 파일 실행시 마운트된 위치에서 실행하면 실행이 안된다.

home 이나 기타 cdrom 폴더가 아닌 곳으로 빠져나와 /마운트위치/실행할파일이름 과 같은 형태로

명령을 실행시켜야 동작한다. 


반응형

'Linux' 카테고리의 다른 글

Linux du  (0) 2018.08.08
Linux sort  (0) 2018.08.08
Linux SCP  (0) 2018.08.08
Linux yum local repo 추가  (0) 2018.08.08
Linux GRUB 명령어  (0) 2018.08.08
728x90
반응형
SCP


- ssh에서 제공되는 scp 명령어를 통해 로컬서버↔원격서버 로의 파일을 전송 (서버와 서버간의 파일전송)


옵션

-r : 지정한 디렉토리의 하위 디렉토리 및 파일까지 모두 복사
-v : 전송시 자세한 진행사항을 보여줌
-F : 지정한 설정파일을 사용
-P : 지정한 포트로 접속 시도
-p : 원본 파일 시간의 수정시간, 사용시간, 권한을 유지





SCP 사용법


사용법

# scp <옵션> <원본 경로 및 파일> <복사 받을 곳 경로 및 파일>

명령어
옵션
Remote 서버 경로
local 서버 경로


1) Remote 서버에 파일 올리기

# scp -P 22 /home/myhome/abc.tar oracle@123.456.78.9:/home/oracle/

abc.tar 파일을 123.456.78.9 서버의 22번 포트로 SSH 접속하여 oracle 사용자로 로그인 한 후 /home/oracle/ 아래에 복사한다.


2. Remote 서버에서 파일 받기

scp -P 22 root@123.456.78.9:/usr/local/abc.xml /home/oracle/

remote 서버의 abc.xml 파일을 local의 /home/oracle로 다운로드 받는다.

SSH포트는 변경하는 경우가 많으므로 -P 옵션 사용했고, 서버 주소와 디렉토리의 구분은 콜론(:)을 사용한다. 원격지의 home 주소는 "./"를 사용해도 된다.

Ex) root@123.456.78.9:./
반응형

'Linux' 카테고리의 다른 글

Linux sort  (0) 2018.08.08
Linux mount and umount(마운트&언마운트)  (2) 2018.08.08
Linux yum local repo 추가  (0) 2018.08.08
Linux GRUB 명령어  (0) 2018.08.08
Linux 메모리 사용 퍼센트로 확인  (2) 2018.08.08

+ Recent posts