CentOS 문서 원본 보기
←
CentOS
둘러보기로 가기
검색하러 가기
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
이 문서는 편집하거나 다른 명령을 할 수 없도록 보호되어 있습니다.
문서의 원본을 보거나 복사할 수 있습니다.
Red Hat의 오픈소스 배포판인 CentOS(The Community ENTerprise Operating System)를 정리한다. *홈페이지 : http://www.centos.org/ :*EPEL : http://dl.fedoraproject.org/pub/epel/, http://fedoraproject.org/wiki/EPEL *다운로드 :*http://www.centos.org/download/ :*http://ftp.daum.net/centos/6.5/isos/i386/ :*http://mirror.centos.org/centos/5/isos/ *라이선스 : Free *플랫폼 : ==설치 가이드== [[CentOS - 설치]] ==CentOS 초기 설정== === CentOS 사양 확인 === *CentOS 버전 확인 :*cat /etc/*-release | uniq :*lsb_release -a :*cat /etc/issue *CPU 갯수 : cat /proc/cpuinfo **CPU Bits : getconf LONG_BIT *Memory 용량 : free -m **cat /proc/meminfo | grep MemTotal *Disk 용량 : df -k **df -h *CPU 가상화 기술 지원 여부 확인 :*VT (Virtualization Technology)를 지원하는 CPU :*Intel-VT, AMD-V grep --color vmx /proc/cpuinfo grep --color svm /proc/cpuinfo *vi showinfo_centos.bash #!/bin/bash echo 'CentOS Ver. :' `cat /etc/issue | grep CentOS`, `uname -p` echo 'CPU 개수 :' `cat /proc/cpuinfo | grep processor | wc -l` CPU echo 'Memory (MB) :' `free -m | grep Mem | awk '{print $2}'` KB echo 'Restart 명령 : shutdown -r now' echo '방화벽 명령 : system-config-securitylevel'<font face="sans-serif, Arial, Verdana, Trebuchet MS"><span style="white-space: normal;"> </span></font> ===IP 설정=== *HWADDR와 UUID는 기존의 값을 그대로 유지 하여야 합니다. *DHCP 설정 :*vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp *고정 IP 설정 :*vi /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.70.111 NETMASK=255.255.255.0 GATEWAY=192.168.70.1 TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=yes service network restart *참조 : [[Network#CentOS Network 설정|CentOS Network 설정]] ===root 사용자 환경 설정=== *vi ~/.bash_profile alias dir='ls -alF' alias dird='ls -alF | grep /' alias chknet='ifdown eth0; ifup eth0; ping -c3 google.com' alias netview='ifconfig -a | egrep "(Link|addr)" | grep -v inet6' export LANG=ko_KR.utf8 source ~/.bash_profile chknet *사용하는 터미널에서 "UTF-8"을 사용하도록 설정 한다. :*[[Putty]]의 경우 : Window -> Translation 메뉴에서 "Character set translation on received data"를 "UTF-8"로 설정 한다. ===hosts 파일 설정=== *vi /etc/hosts 192.168.70.111 node111.jopenbusiness.com node111 ===NTP 설정=== *Network Time Protocol (NTP) yum install ntp service ntpd start chkconfig ntpd on ===CentOS update=== yum clean all yum update ===EPEL 설치=== *필요한 경우에만 설치 합니다. *EPEL (Extra Packages for Enterprise Linux) Repoistory 설치 :*위키 : http://fedoraproject.org/wiki/EPEL :*Repository : http://dl.fedoraproject.org/pub/epel/ ::*CentOS 7 :::*Key : http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7 :::*RPM : http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm ::*CentOS 6 (64 bits) :::*Key : http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6 :::*RPM : http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm :*라이선스 : [[GNU GPLv2]] *EPEL 다운로드 사이트에서 CentOS 버전에 맞는 설치 파일(epel-release-로 시작하는 파일)을 다운로드하여 설치 합니다. yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # rpm -Uvh epel-release-6-8.noarch.rpm yum repolist //--- epel repoistory가 잘 추가되어 있는지 repository 목록을 확인 합니다. *Key 등록 rpm --import RPM-GPG-KEY-EPEL-7 *참고 문헌 :*http://www.thegeekstuff.com/2012/06/enable-epel-repository/ :*http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/ ==CentOS Upgrade== *Upgrade to CentOS 5.4 from 5.3 yum clean all yum update glibc* yum update yum* rpm* python* yum clean all // yum list updates //--- upgrade 대상 확인 yum update shutdown -r now #--- CentOS 버전 확인 lsb_release -a ==VNC Server 설치== VNC (Virtual Network Computing)는 원격으로 Linux의 GUI 화면으로 접속할 수 있도록 한다. <br> *VNC Server 설치 #--- CentOS에 root로 로그인 한다. yum -y install vnc-server *vi /etc/sysconfig/vncservers VNCSERVERS="1:root" #--- 1번부터 5901 port를 사용 한다. VNCSERVERARGS[1]="-geometry 1152x864" #--- 추가 옵션 : -nolisten -nohttpd -localhost *VNC Server 사용자 password 생성 cd mkdir .vnc cd .vnc vncpasswd #--- 여기서 암호를 입력 한다. service vncserver restart *방화벽에서 해당 사용자의 port를 오픈하여야 한다. #--- /etc/sysconfig/vncservers에 등록된 1번부터 5901 port를 사용 한다. *VNC Client에서 접속 시 VNC Viewer로 접속시 "IP:5901"로 접속 한다. TightVNC Viewer로 접속시 "IP:1"로 접속 한다. *처음 접속이 완료되면 xstartup 파일이 생성된다. 이를 수정하여 예쁜화면을 사용하자. cd cd .vnc vi xstartup ### twm & #--- 이 라인을 주석 처리(삭제) 한다. gnome-session & #--- 이 라인을 추가 한다. service vncserver restart *설치 정보 :*설치 폴더 : :*실행 파일 : /usr/bin/ :*환경 설정 : /etc/sysconfig/vncservers :*기동 종료 : /etc/init.d/vncserver start, stop, restart :*서비스 확인 : *참고 문헌 :*[http://allkr.textcube.com/46 vncserver 리눅스에 설정하기 보안터널(ssh)을 이용해서 사용, 2009.9] :*[http://happy-msn.tistory.com/24 Virtual Network Computing(VNC), 2008.7] ==주요 SW 설치== ===암호 변경=== passwd ===CentOS용 프로그램=== *시스템 라이브러리 설치 yum -y install zlib curl yum -y install gcc g++ cpp gcc-c++ compat-gcc-34-g77 yum -y install libxml2 libxml2-devel yum -y install gd gd-devel yum -y install freetype freetype-devel yum -y install libpng libpng-devel yum -y install libjpeg libjpeg-devel yum -y install fontconfig fontconfig-devel yum -y install mhash mhash-devel yum -y install libmcrypt libmcrypt-devel yum -y install openssl openssl-devel yum -y install gmp gmp-devel yum -y install flex yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel *필요한 경우 컴파일러를 설치 한다. yum -y install gcc gcc-c++ termcap libtermcap libtermcap-devel gdbm-devel ===vsftpd 설치=== *vsftp 현황 확인 yum list | grep vsftpd #--- 설치 가능한 package 확인 yum list installed | grep vsftpd #--- 설치된 package 확인 *vsftpd 설치 yum -y install vsftpd rpm -qa | grep vsftpd #--- vsftpd 설치 확인 *아래 설치 정보에 정리된 블랙 리스트에서 ftp를 사용할 사용자를 빼준다. :*vi /etc/vsftpd/ftpusers :*vi /etc/vsftpd/user_list *방화벽에서 20, 21 port를 개방 한다. system-config-securitylevel *FTP 클라이언트에서 접속이 디렉토리 목록이 표시되지 않을 경우 :*FTP Client 설정에서 문자셋을 UTF-8로 강제로 설정하고 접속 한다. *설치 정보 :*실행 파일 : /usr/sbin/ :*환경 파일 : /etc/vsftpd/vsftpd.conf :*블랙 리스트 : /etc/vsftpd/ftpusers, /etc/vsftpd/user_list :*기동 종료 : /etc/init.d/vsftpd start, stop, restart, status :*서비스 확인 : ps -ef | grep vsftpd | grep -v grep *showinfo_vsftp.bash #!/bin/bash echo 'vsftp 버전 : vsftp 2.0.5' echo '환경 파일 : vi /etc/vsftpd/vsftpd.conf' echo '블랙 리스트 : /etc/vsftpd/ftpusers, /etc/vsftpd/user_list' echo '기동 종료 : service vsftpd restart' echo '서비스 확인 : ps -ef | grep vsftpd | grep -v grep' ===Java 설치=== *[[JDK#CentOS용 설치 가이드|CentOS용 JDK 설치 가이드]] ===MySQL 설치=== *[[MySQL#CentOS용 설치 가이드|CentOS용 MySQL 설치 가이드]] ===PostgreSQL 설치=== *[[PostgreSQL#CentOS용 설치 가이드|CentOS용 PostgreSQL 설치 가이드]] ===Apache Http Server 설치=== *[[Apache_HTTP_Server#CentOS용 설치 가이드|CentOS용 Apache Http Server 설치 가이드]] ===PHP 설치=== *[[PHP 5.2.5#CentOS용 설치 가이드|CentOS용 PHP 설치 가이드]] ===Tomcat 설치=== *[[Apache_Tomcat#CentOS용 설치 가이드|CentOS용 Tomcat 설치 가이드]] :*[[Tomcat_Connectors_1.1.26#CentOS용 설치 가이드|CentOS용 Tomcat Connectors 설치 가이드]] *Linux의 심볼 링크를 사용하여 Tomcat의 Root 폴더를 변경 하는 방법 ln -s /var/www/html /usr/share/tomcat5/webapps/ROOT ===Apache ANT 설치=== yum -y install ant ===Google Chrome 설치=== *설치 환경 :*CentOS 6.5 *Google YUM repository 등록 :*vi /etc/yum.repos.d/google-chrome.repo [google-chrome] name=google-chrome baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub *Google Chrome 설치 yum install google-chrome-stable wget http://chrome.richardlloyd.org.uk/install_chrome.sh chmod u+x install_chrome.sh ./install_chrome.sh ==관리 SW 설치== ===sendmail을 통한 gmail 연동=== *[[Google Apps#Gmail for CentOS|Gmail for CentOS]] ===DNS 서버 구축=== *DNS Server 설치 yum install bind bind-utils bind-libs bind-chroot caching-nameserver *방화벽에서 TCP 53, UDP 53 포트를 열어 둔다. iptables -A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT service iptables save service iptables restart *DNS Server 설정 :*서버 IP (114.207.113.12)와 서버 URL (www.jopenbusiness.com)에 따른 DNS Server 설정 사례를 기술 한다. cd /var/named/chroot/var/named/ cp localhost.zone jopenbusiness.com.zone chown named:named jopenbusiness.com.zone cp localhost.zone 113.207.114.zone chown named:named 113.207.114.zone *vi /etc/named.rfc1912.zones :*맨 아래에 다음을 추가 한다. zone "jopenbusiness.com" IN { type master; file "jopenbusiness.com.zone"; allow-update { none; }; }; zone "113.207.114.in-addr.arpa" IN { type master; file "113.207.114.zone"; allow-update { none; }; }; *vi /var/named/chroot/var/named/jopenbusiness.com.zone $TTL 86400 @ IN SOA ns.jopenbusiness.com. root ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns.jopenbusiness.com. IN A 114.207.113.12 www IN A 114.207.113.12 *vi /var/named/chroot/var/named/113.207.114.zone $TTL 86400 @ IN SOA ns.jopenbusiness.com. root ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns.jopenbusiness.com. 12 IN PTR jopenbusiness.com. 12 IN PTR www.jopenbusiness.com. *DNS 설정 방법 (~.zone에서 사용) :*A : 도메인에 IP 할당 :*MX : Mail Exchanger 설정 :*CNAME : 도메인의 별칭에 IP 할당 :*PTR : IP에 도메인 할당 :*NS : Name Server :*DNS 설정 사례 IN NS ns.jopenbusiness.co IN MX 10 mail.google.com. ;NS 아래, CNAME 위에 설정할 것 www IN A 114.207.113.12 mail IN CNAME ghs.google.com. 12 IN PTR jopenbusiness.com. *vi /etc/named.caching-nameserver.conf :*"any;" 부분을 수정할 것 :*query-source port 53; 의 주석을 푼다. :*query-source-v6 port 53; 의 주석을 푼다. options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; query-source port 53; query-source-v6 port 53; allow-query { any; }; allow-query-cache { any; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; view localhost_resolver { match-clients { any; }; match-destinations { any; }; recursion yes; include "/etc/named.rfc1912.zones"; }; *vi /etc/resolv.conf에 다음 라인을 추가 한다. nameserver 114.207.113.12 *showinfo_name.bash #!/bin/bash echo 'Name 버전 : caching-nameserver 9.3.6' echo '설치 폴더 : /var/named/' echo '환경 파일' echo ' vi /var/named/chroot/var/named/jopenbusiness.com.zone' echo ' vi /var/named/chroot/var/named/113.207.114.zone' echo ' vi /etc/named.caching-nameserver.conf' echo '환경 폴더 : /var/named/chroot/var/named/' echo '기동 종료 : service named restart' echo '서비스 확인 : ps -ef | grep named | grep -v grep' *'''도메인을 구입한 업체에서 도메인에 해당 하는 네임서버를 등록 하여야 한다.''' :*사용하실 네임서버는 호스트 등록이 되어 있고 실제로 존재해야만 합니다. :*네임서버 변경이 완료 된 후에 최대 2-3일의 갱신 시간이 필요합니다. *한글 도메인 등록 방법 ;100 IN PTR 한글.kr. 100 IN PTR xn--bj0bj06e.kr. ; ← 한글 도메인을 Punycode로 변환 후 설정 *nslookup으로 DNS 설정 확인 방법 :*[[HMail_Server_4.4.1#DNS와 DNS MX 확인|DNS와 DNS MX 확인]] :*[ftp://ftp2.kr.freebsd.org/FreeBSD-kr/doc/misc/PoweredByDNS/PoweredByDNS7.html 7장. DNS 오류 수정 도구] nslookup //--- A,ANY,CNAME,HINFO,MX,NS,PTR,SOA,TXT 등 set type=A www.jopenbusiness.com set type=MX jopenbusiness.com *참고 문헌 :*[http://blog.naver.com/PostView.nhn?blogId=kdk3852&logNo=110098449625&viewDate=¤tPage=1&listtype=0 CentOS DNS 서버 구축, 2010.12] :*[http://pplane.net/entry/%EB%84%A4%EC%9E%84%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95-1 네임 서버 구축, 2010.8] ===Subversion 구축=== *[[Subversion]] 설치 yum install subversion *[[Subversion]]용 사용자 생성 useradd -d /home/svn -m -g apache svn *[[Subversion]] 저장소(repo_sample) 생성 :*/home/svnserve/repo_sample 저장소를 생성 한다. mkdir /home/svnserve cd /home/svnserve svnadmin create --fs-type fsfs repo_sample vi /home/svnserve/repo_sample/svnserve.conf anon-access = none auth-access = write password-db = passwd realm = Sample Repository *[[Subversion]] 접속 권한 설정 vi /home/svnserve/repo_sample/passwd [user] 아이디 = 암호 *Subversion 시작 및 데몬 확인 svnserve -d -r /home/svnserve ps -ef | grep svnserve *Subversion 사용을 위한 설정 cd /home/svn svn checkout svn://localhost/repo_sample repo_sample export SVN_EDITOR=/bin/vi #--- 주요 소스 코드를 저장하는 trunk 폴더 생성 svn mkdir svn://localhost/repo_sample/trunk :q! C svn mkdir svn://localhost/repo_sample/branches svn mkdir svn://localhost/repo_sample/tags svn list svn://localhost/repo_sample *Subversion 사용 Port 3690/tcp *참고 문헌 :*[http://ezgreg.tistory.com/40 CentOS 5.3에서 Subversion(SVN) 설치 및 사용법, 2010.11] :*[http://sirini.net/blog/?p=671 CentOS 5.x 에서 SVN 설정하기] ===Samba Server 구축=== *Samba 설치 :*CentOS 5.5에서는 Samba 3.0.33 이 설치됨 yum install samba samba-common samba-client *vi /etc/samba/smb.conf [global] workgroup = MYGROUP server string = Samba Server Version %v log file = /var/log/samba/%m.log security = share encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd dos charset = cp949 unix charset = UTF8 display charset = UTF8 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 [homes] comment = Home browseable = no writable = yes [public] comment = Public path = /home/public public = yes writable = yes :*Samba 재기동 service smb restart :*/etc/samba/smbusers : 삼바 사용자 파일 :*/etc/samba/smbpasswd : 삼바 사용자 암호 파일 *공유 폴더 생성 mkdir /home/public chmod 666 /home/public chown nobody:nobody /home/public *Samba 사용자 추가 smbpasswd -a samba01 #--- 사용자 추가 smbpasswd -x samba01 #--- 사용자 삭제 *Windows에서 서버 접속 \\서버_IP *Default 삼바 사용자 nobody:nobody *로그 파일 /var/log/samba/nmbd.log /var/log/samba/smbd.log *PC의 공인 IP 확인 사이트 http://www.whatismyip.com/ *참고 문헌 :*[http://corecreate.net/288 samba 서버를 구성해보자, 2011.1] :*[http://blog.naver.com/aramjo/120064643721 CentOS Samba 설정, 2009.3] :*[http://xchallen.com/tc/entry/%C6%DF%BB%EF%B9%D9%BC%AD%B9%F6-%B1%B8%C3%E0%C7%CF%B1%E2 삼바서버 구축하기, 2008.3] :*[http://blog.naver.com/pythonist/20042155985 삼바서버 구축, 2007.9] ===NFS 설정=== NFS를 사용하여 리모트에 있는 파일 시스템을 마운트 해보자. 증분 백업이 필요한 경우에는 rsync가 좋지만, 그외의 경우에는nfs가 편리하다. ====NFS Server 설정==== *NFS Server의 환경 :*OS : CentOS 5.5 :*IP : 203.231.11.100 *NFS 설치 yum install nfs-utils nfs-utils-lib #--- Booting시 nfs 자동 실행 설정 #chkconfig --level 3 nfs on #chkconfig --level 3 portmap on chkconfig nfs on service nfs restart *NFS 사용자 등록 :*NFS의 경우 Server와 Client간의 사용자/그룹 번호가 자동으로 매핑되므로 보안에 주의 하여야 한다. 단, 0번의 경우에는 65534로 연결이 된다. #--- 사용하고자 하는 번호를 이미 사용하고 있는지 확인 (여기서는 60001번을 사용) vi /etc/passwd /etc/group groupadd -g 60001 nfsgroup useradd -u 60001 -d /home/nfsuser -m -g nfsgroup nfsuser *NFS를 사용하여 disk 공유 mkdir /nfsdisk chown nfsuser:nfsgroup /nfsdisk chmod 755 /nfsdisk vi /etc/exports /nfsdisk 203.231.11.201(rw,sync,no_subtree_check,all_squash) ### /nfs *(rw,async,no_root_squash) exportfs -a exportfs -v */etc/exports에서 사용 가능한 옵션 rw : 일기/쓰기 ro : 읽기 secure : Mount시 1024 이하의 포트 사용 noaccess : 접속 거부 root_squach : root 권한 획득 차단 no_root_squash : Client root가 Server의 root로 연동 sync : 파일 시스템이 변경 즉시 동기화 all_squach : 서버와 클라이언트를 동일한 권한으로 설정 (root를 제외) no_all_squach : 서버와 클라이언트가 하나의 권한을 가짐 (root를 제외) *방화벽 설정을 위해 사용 port 변경 :*NFS는 portmap (111 port)와 rpc.nfs (2049 port)를 제외하고 나머지 port는 동적으로 설정됨 :*방화벽 설정을 위해서 사용 포트를 다음과 같이 고정 한다 111/tcp 111/udp portmap 2049/tcp 2049/udp rpc.nfs 4000/tcp 4000/udp rpc.statd 4001/tcp 4001/udp rpc.lockd 4002/tcp 4002/udp rpc.mountd 4003/tcp 4003/udp rpc.rquota :*vi /etc/init.d/nfslock STATD_PORT=4000 #--- 추가 export STATD_PORT #--- 추가 [ -n "$STATD_PORT" ] && STATDARG="$STATDARG -p $STATD_PORT" service nfslock restart :*vi /etc/sysconfig/nfs 다음을 추가 LOCKD_TCPPORT=4001 LOCKD_UDPPORT=4001 MOUNTD_PORT=4002 service nfs restart :*vi /etc/services에서 4003에 해당하는 것을 아래와 같이 수정 rquotad 4003/tcp # rpc.rquotad tcp port rquotad 4003/udp # rpc.rquotad udp port service nfs restart :*사용 Port 확인 rpcinfo -p *방화벽 설정 system-config-securitylevel 111/tcp 111/udp 2049/tcp 2049/udp 4000/tcp 4000/udp 4001/tcp 4001/udp 4002/tcp 4002/udp 4003/tcp 4003/udp ====NFS Client 설정==== *NFS Client의 환경 :*OS : CentOS 5.5 :*IP : 203.231.11.201 *NFS 사용자 등록 :*NFS의 경우 Server와 Client간의 사용자/그룹 번호가 자동으로 매핑되므로 보안에 주의 하여야 한다. 단, 0번의 경우에는 65534로 연결이 된다. #--- 사용하고자 하는 번호를 이미 사용하고 있는지 확인 (여기서는 60001번을 사용) vi /etc/passwd /etc/group groupadd -g 60001 nfsgroup useradd -u 60001 -d /home/nfsuser -m -g nfsgroup nfsuser *파일 시스템 마운트 mkdir /client/nfsdisk mount 203.231.11.100:/nfsdisk /client/nfsdisk *참고 문헌 :*[http://www.servergoogle.net/entry/TCDraftPost-49 nfs설정, 2010.11] ===rsync 설정=== CentOS에서 rsync는 하나의 서버로부터 다른 서버로 일방적으로 파일을 동기화하는 명령 이다. rsync는 inetd, rsync server, ssh 등을 이용하여 파일을 주고 받을 수 있다. 여기서는 보안적인 측면에서 ssh를 사용하여 rsync를 설정하는 방법을 알아 보자. *rsync 설치 yum install rsync *대상 서버에 rsync 사용자 등록 :*보안을 위해서 rsync만을 위한 사용자와 그룹을 사용하여 rsync를 설정하자. #--- 사용하고자 하는 번호를 이미 사용하고 있는지 확인 (여기서는 60001번을 사용) vi /etc/passwd /etc/group groupadd -g 60001 nfsgroup useradd -u 60001 -d /home/nfsuser -m -g nfsgroup nfsuser *ssh를 사용한 rsync 명령 2가지 rsync -ave ssh 원본_폴더 사용자@대상_서버_IP:타겟_폴더 예) rsync -ave ssh /rsyncDisk nfsuser@203.231.11.201:/targetDisk /targetDisk/rsyncDisk 폴더가 생성이 된다. rsync -av --rsh='ssh -pSSH의_Port -l사용자' 원본_폴더 사용자@대상_서버_IP:타겟_폴더 예)rsync -av --rsh='ssh -p22 -lnfsuser' /rsyncDisk nfsuser@203.231.11.201:/targetDisk *rsync 옵션 --delete : delete files that don't exist on sender (system) -v : Verbose (try -vv for more detailed information) -e "ssh options" : specify the ssh as remote shell -a : archive mode -r : recurse into directories -z : compress file data ssh를 사용할 경우, ssh에서 사용자(nfsuser)에 대한 암호를 물어보므로 crontab 등에서 사용하기에 불편하다. expect를 사용하여 rsync를 자동화 하자. *rsync 명령 자동화 스크립트 #!/usr/bin/expect spawn bash -c "여기에_rsync_명령어" expect -re "assword:" sleep 0.2 send "사용자_암호\r" interact *방화벽 설정 :*ssh 사용시 22/tcp 사용함 :*rsync server 사용시 873/tcp 사용함 ==사용자 가이드== ===CentOS 기본 명령=== *CentOS 완전 종료 shutdown -h now *CentOS 리부팅 shutdown -r now //--- reboot 명령을 사용하여도 됨 *chkconfig :*level은 0 ~ 6 chkconfig --list [서비스명] chkconfig [--level ] <서비스명> on chkconfig [--level ] <서비스명> off ===Redirection=== *표준 입력 < *표준 출력 >, >> *표준 에러 2> //--- bash >& //--- csh 2>&1 //--- 표준 에러를 표준 출력으로 변경 *tee 명령 :*화면에 표시하는 동시에 파일에도 저장 ~ | tee filename ===SSH 접속 방법=== *[[OpenSSH#SSH 접속 방법|SSH 접속 방법]] ===yum 사용법=== *yum repository 확인 방법 yum repolist *관련 폴더 /etc/yum.conf /etc/yum.repos.d/ /etc/yum/ *설치 가능한 package 목록 보기 yum list [all] yum grouplist #--- package 그룹 보기 yum search php *package 설치 및 삭제 yum install httpd #--- 설치 yum install httpd.i386 #--- 아키텍처를 지정하여 설치 yum update httpd #--- 업데이트 yum remove httpd #--- 삭제 yum groupinstall "그룹명" #--- package 그룹 설치 yum groupupdate "그룹명" #--- package 그룹 업데이트 yum groupremove "그룹명" #--- package 그룹 삭제 *설치된 package 목록 보기 yum list installed [httpd] *업데이트할 package 목록 보기 및 업데이트 yum list updates #--- 목록 보기 yum update -y #--- 업데이트 ====The program package-cleanup is found in the yum-utils package==== *오류 메시지 The program package-cleanup is found in the yum-utils package *조치 사항 yum -y erase bind-chroot yum -y install bind yum -y update ====The program yum-complete-transaction is found in the yum-utils package==== *첫번째 방법 yum clean all yum -y update *두번째 방법 yum install yum-utils yum-complete-transaction ===RPM 사용법=== Redhat Package Manager로 레드헷에서 만든 패키지 관리자 이다. *RPM 파일명 구조 패키지이름-버전-릴리즈번호.소스여부.시스템.확장자 *RPM 명령어 :*[http://rpmfind.net/ rpmfind]에서 PRM 패키지(~.rpm)를 찾을 수 있다. rpm -Uvh gcc-2.96-98.i386.rpm #--- 패키지 설치 rpm -Uvh ftp://ftp.rpmserver.com/gcc-2.96-98.i386.rpm #--- 네트워크로 패키지 설치 rpm -e gcc-2.96-98.i386 #--- 패키지 제거 rpm -qa | grep httpd #--- 패키지 조회 rpm -qi ~.rpm #--- 패키지 상세 정보 조회 rpm -ql gcc-2.96-98.i386 #--- 패키지 설치 경로 조회 *RPM 옵션 -i :기본 설치. 이전 버전이 존재하면 설치하지 않음 -U : 이전 버전이 설치되어 있으면 업그레이드. (-i 보다 권장) -F : 이전 버전이 설치되어 있는 경우에만 설치 -v : 설치 메시지를 보여 줌 -h : 진행과정을 '#'으로 표시 -e : 패키지를 제거 -q : 패키지가 설치되어 있는 지 확인 -qa : 현재 설치된 모든 패키지 목록을 출력 -qi : 현재 설치된 패키지의 간략한 정보를 출력 -ql : 현재 설치된 패키지의 내용(위치)을 출력 -Vf : 현재 설치된 파일의 검증. 문제가 없으면 '.'으로 표시 -Va : 한 패키지만 검증 --force : 충돌 등을 무시하고 무조건 설치 --nodeps : 의존성 문제를 무시하고 설치 == Disk Management == === Disk 추가 === *물리 디스크 확인 :*df -k :*fdisk -l Disk /dev/xvda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/xvda1 * 1 13 104391 83 Linux /dev/xvda2 14 2610 20860402+ 8e Linux LVM Disk /dev/xvdb: 85.8 GB, 85899345920 bytes 255 heads, 63 sectors/track, 10443 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/xvdb doesn't contain a valid partition table *새로 만든 디스크 파티션 fdisk /dev/xvdb //--- n p 1 엔터 엔터 //--- t 8e //--- w fdisk -l :*fdisk /dev/xvdb : Disk Partition [root@manage ~]# fdisk /dev/xvdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. The number of cylinders for this disk is set to 10443. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-10443, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-10443, default 10443): Using default value 10443 Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. *PV (Physical Volume) 생성 :*pvcreate, pvchange, pvremove, pvmove, pvresize, pvscan, pvdisplay :*pvremove /dev/sdb1 pvcreate /dev/sdb1 pvscan pvdisplay :*pvcreate : PV (Physical Volume) 생성 [root@manage ~]# pvcreate /dev/xvdb1 Physical volume "/dev/xvdb1" successfully created [root@manage ~]# pvscan PV /dev/xvda2 VG VolGroup00 lvm2 [19.88 GB / 0 free] PV /dev/xvdb1 lvm2 [80.00 GB] Total: 2 [99.87 GB] / in use: 1 [19.88 GB] / in no VG: 1 [80.00 GB] *VG (Volume Group) 생성 :*vgcreate, vgchange, vgremove, vgconvert, vgdisplay, vgexport, vgextend, vgimport, vgmerge, vgreduce, vgrename, vgscan, vgsplit :*vbremove vg_BigData001 vgcreate vg_BigData001 /dev/sdb1 pvscan vgscan vgdisplay :*vgcreate : VG (Volume Group) 생성 [root@manage ~]# vgcreate DataVG /dev/xvdb1 Volume group "DataVG" successfully created [root@manage ~]# pvscan PV /dev/xvdb1 VG DataVG lvm2 [80.00 GB / 80.00 GB free] PV /dev/xvda2 VG VolGroup00 lvm2 [19.88 GB / 0 free] Total: 2 [99.87 GB] / in use: 2 [99.87 GB] / in no VG: 0 [0 ] ---- *LV (Logical Volume) 생성 :*lvcreate --help :*lvcreate, lvchange, lvremove, lvconvert, lvdisplay, lvextend, lvreduce, lvrename, lvresize :*lvremove -f /dev/DataVG/data : Logical Volume 삭제 lvcreate -L 19.99G -n lv_BigData001 vg_BigData001 lvscan lvdisplay :*lvcreate : LV (Logical Volume) 생성 ::*lvremove -f DataVG/data : Logical Volume 삭제 [root@manage sbin]# pvscan PV /dev/xvdb1 VG DataVG lvm2 [80.00 GB / 80.00 GB free] PV /dev/xvda2 VG VolGroup00 lvm2 [19.88 GB / 0 free] Total: 2 [99.87 GB] / in use: 2 [99.87 GB] / in no VG: 0 [0 ] [root@manage sbin]# lvcreate -L 78G -n data DataVG Logical volume "data" created [root@manage sbin]# lvscan ACTIVE '/dev/DataVG/data' [78.00 GB] inherit ACTIVE '/dev/VolGroup00/LogVol00' [15.88 GB] inherit ACTIVE '/dev/VolGroup00/LogVol01' [4.00 GB] inherit *파일 시스템 생성 mkfs.ext4 /dev/DataVG/data *mkfs.ext3 : 파일 시스템 생성 mkfs.ext3 /dev/DataVG/data<font face="sans-serif, Arial, Verdana, Trebuchet MS"><span style="white-space: normal;"> </span></font> <font face="sans-serif, Arial, Verdana, Trebuchet MS"><span style="white-space: normal;"></span></font> 참고 문헌 *http://soul0.tistory.com/124 *http://nyebo.net/articles/linux-lvm/ === Disk Mount === *마운트 mkdir /nas mount /dev/vg_BigData001/lv_BigData001 /nas ### mount -t ext4 /dev/vg_BigData001/lv_BigData001 /nas mount #--- Mount 상태 보기 umount /dev/vg_BigData001/lv_BigData001 df -m #--- 원격 파일 시스템 마운트 mount -t nfs 172.18.38.398:/vol/CCHDATA01A/diska /user #--- 윈도우 파일 시스템 마운트 mount -t cifs 윈도우_IP/diska /user/disk :*mount : Disk Mount [root@manage ~]# cd / [root@manage /]# mkdir data [root@manage /]# mount /dev/DataVG/data /data [root@manage /]# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/xvda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/mapper/DataVG-data on /data type ext3 (rw) *리부팅시 자동 마운트 설정 :*vi /etc/fstab /dev/vg_BigData001/lv_BigData001 /nas ext4 defaults 1 2 :*vi /etc/fstab : 리부팅시 자동 마운트 설정 [root@manage /]# vi /etc/fstab /dev/VolGroup00/LogVol00 / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/VolGroup00/LogVol01 swap swap defaults 0 0 /dev/DataVG/data /data ext3 defaults 1 2 *참고 문헌 :*[[VirtualBox#가상 하드 관리|가상 하드 관리]] :*[http://ebonny.wordpress.com/2010/10/29/ntfs-%EB%A7%88%EC%9A%B4%ED%8A%B8%ED%95%98%EA%B8%B0/ 마운트 1 (기본사용법, NTFS마운트, 자동마운트 및 복구), 2010.10] === NTFS Mount === *작업 환경 :CentOS 6.5가 설치된 노트북에 2개의 디스크가 있고 그 중 하나는 NTFS로 포맷되어 Windows에서 사용 중 *NTFS 디스크 마운트 하기 :*우선 마운트를 하기 위해서 EPEL을 설정하고 NTFS 마운트용 패키지를 설치 합니다. # wget [http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm] wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm rpm -Uvh epel-release-6-8.noarch.rpm yum install ntfs-3g :*NTFS로 포맷된 디스크(/dev/sdb1)를 마운트 합니다. mkdir /ntfs mount -t ntfs-3g /dev/sdb1 /ntfs *Linux를 새로 부팅할 때 자동으로 마운트 되기를 원하면 아래와 같이 설정 합니다. vi /etc/fstab /dev/sdb1 /ntfs ntfs-3g defaults 0 0 ==관리자 가이드== === 방화벽 설정 === CentOS는 디폴트로 [[Iptables|iptables]]를 방화벽으로 사용 한다. *특정 IP의 서버 접근 차단 방법 iptables -A INPUT -s 61.247.209.81 -j DROP iptables -A INPUT -s 61.247.209.0/24 -j DROP *방화벽 설정 명령어 setup system-config-securitylevel *setup 명령을 설치하는 방법 yum install setuptool yum install system-config-* yum install ntsysv setup에서 방화벽 기능만 사용하고자 할 경우 아래와 같이 설치 합니다. {| cellspacing="1" cellpadding="1" style="font-size: 14px; color: rgb(37, 37, 37); font-family: sans-serif; line-height: 20.7999992370605px; width: 100%;" |- | style="background-color: rgb(241, 241, 241);" | yum install setuptool system-config-firewall |} ===부팅시 자동 실행 설정=== *named 서비스를 자동 실행 설정 chkconfig --level 5 named on chkconfig named on chkconfig --list | grep named *ntsysv 명령어를 실행하여 자동 실행할 데몬을 선택할 수도 있다. ===KVM=== *참고 문헌 :*[A Quick Guide to Using KVM with CentOS-5 http://wiki.centos.org/HowTos/KVM, 2009.10] ===VirtualBox 설치=== *[[VirtualBox#CentOS용 설치 가이드|VirtualBox의 CentOS용 설치 가이드]] ===RPM 제작=== *RPM 제작을 위한 패키지 설치 yum -y install rpm-build rpm-devel yum -y install ~.rpm :*설정 파일 : /etc/rpmrc, /usr/lib/rpm/rpmc <br> *RPM 소스 패키지(~.src.rpm) 다운로드 :*[http://rpmfind.net/ rpmfind]에서 원하는 RPM 소스 패키지를 다운로드 한다. wget ftp://rpmfind.net/linux/fedora/development/source/SRPMS/~.src.rpm <br> *RPM 소스 패키지로 RPM 패키지(~.rpm) 만들기 rpmbuild --rebuild --target=i686 ~.src.rpm rpmbuild --rebuild ~.src.rpm #--- target은 생략 가능 <br> *RPM 패키지 설치 rpm -Uvh ~.rpm <br> *RPM 소스 패키지 내용 보기 mkdir /usr/src/redhat rpm -ivh ~.src.rpm :*/usr/src/redhat/SOURCES : 소스와 패치 파일 저장 :*/usr/src/redhat/SPECS : 스팩 파일 저장 <br> *RPM 소스 패키지 다시 만들기 cd /usr/src/redhat/SPECS rpm -ba ~.spec :*/usr/src/redhat/SRPMS : RPM 소스 패키지가 생성됨 :*/usr/src/redhat/RPMS : RPM 패키지가 생성됨 <br> */usr/src/redhat/ 폴더의 구조 :*BUILD : rpm에 의해서 빌드가 이루어지는 디렉토리 :*RPMS : 아키텍처별 RPM 패키지 저장 ::*아키텍처별로 athlon, geode, i386, i486, i586, i686, noarch 하위 폴더가 있음 :*SOURCES : RPM 소스 저장 :*SPECS : RPM Spec 저장 :*SRPMS : SRPM 저장 <br> *참고 문헌 :*[http://rpmfind.net/ '''Rpmfind.Net'''] : RPM 패키지를 찾을 수 있는 사이트 :*[http://www.ibm.com/developerworks/kr/library/l-rpm1/index.html RPM을 이용한 소프트웨어 패키지, Part 1, 2001.11] :*[http://www.ibm.com/developerworks/kr/library/l-rpm2/index.html RPM을 이용한 소프트웨어 패키지, Part 2, 2001.12] :*[http://www.ibm.com/developerworks/kr/linux/library/l-rpm3.html RPM을 이용한 소프트웨어 패키지, Part 3, 2002.2] :*[http://faq.hostway.co.kr/xe/?mid=lnx_etc&page=2&document_srl=591 source rpm 을 사용하여 rpm 패키지 만들기, 2008.5] ===시스템 모니터링=== *vmstat : 메모리 모니터링 *iostat : 입출력 모니터링 *free : 메모리 모니터링 *top : Process 모니터링 *uptime : 시스템 평균 부하율 *sar : sysstat package install 필요 *ls -alF /proc/*info *CPU 모니터링 도구 :*top, vmstat, ps aux, mpstat -P all, sar -u, iostat, oprofile, gnome-system-monitor, KDE-monitor, /proc *Memory 모니터링 도구 :*top, vmstat -s, ps aur, ipcs, sar -r -B -W, free, opeofile, gnome-system-monitor, KDE-monitor, /proc ===시스템 튜닝=== *vi /etc/sysctl.conf *Memory Turning /proc/sys/vm/* *Kernel Turning /proc/sys/kernel/* *Filesystems Turning /proc/sys/fs/* ===vi에서 ident에 의한 계단 현상 제거=== *vi에서 설정 vi ~ :set paste *vi ~/.vimrc set paste *참고 문헌 :*http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Vim/Documents/UsedVim ===PAM 설정으로 resource 사용 제한=== *vi /etc/security/limits.conf :*ulimit -a :*<domain> <type> <item> <value> :*domain : user, @group :*type : hard. 최대값 설정, soft. 사용자가 지정된 범위 내에서 변경 가능 :*item ::*cpu : 최대 CPU 선점 시간 (minutes) ::*nproc : 최대 생성 가능한 프로세스 수 ::*priority : 프로세스 우선 순위 ::*nice : 최대 프로세스의 우선 순위 ::*rtprio : 권한이 없는 프로세스에 허락된 실시간 우선 순위 ::* ::*rss : 최대 Process 메모리의 크기 (KB) ::*stack : 최대 stack 크기 (KB) ::*as : 주소 공간의 크기 (KB) ::*memlock : 최대 lock-in-memory 주소 공간 크기 (KB) ::*msqqueue : 최대 POSIX message queue 메모리 용량 (bytes) ::* ::*core : Core dump 파일 크기 (KB) ::*data : 최대 데이터 크기 (KB) ::*nofile : 최대 오픈된 파일 수 ::*fsize : 최대 파일 크기 (KB) ::*locks : 최대 locked file 수 ::* ::*maxlogins : 최대 로그인 사용자 세션 수 ::*maxsyslogins : 최대 시스템 로그인 세션 수 ::*sigpending : 최대 Pending signal 수 === crontab === <span style="line-height: 20.8px;">crontab -l</span> <pre><span style="line-height: 20.8px;"></span>crontab -e # 분 시 일 월 요일 명령어 0 1 * * * /root/bin/root.bash 를 등록 한다.</pre> == 참고 문헌 == *[[CentOS 7|CentOS 7]] *[[Redhat|redhat]] *[https://github.com/pixelb/crudini https://github.com/pixelb/crudini] *[http://wiki.centos.org/ CentOS Wiki] *[[Bash|bash]] : Linux용 Bash Shell Script *[http://tetris.tistory.com/277 VirtualBox 3.04 & CentOS 5.3, 2009.8] *[http://www.wehome.kr/wordpress/?p=1504 CentOS 5.3 YUM으로 APM 설치하기, 2009.7] *[http://blog.naver.com/joycestudy/100024258758 Linux RPM 사용법] *[http://citylock.tistory.com/category/CentOS%20%EB%A6%AC%EB%88%85%EC%8A%A4 시티락 세상~ : 'CentOS 리눅스'에 해당되는 글] *[http://yyman.tistory.com/tag/bzip2 Centos 5.3(32bit), Ubuntu 9.04(64bit) - Apache 2.x + PHP 5.3 + MySQL, 라이브러리 설치하기, 2009.9] *[http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.4/Korean CentOS 5.4 릴리즈노트, 2009.11] *[http://www.techotopia.com/index.php/Installing_CentOS_6_with_Windows_in_a_Dual_Boot_Environment Installing CentOS 6 with Windows in a Dual Boot Environment] *[http://www.itworld.co.kr/news/87936 주목해야 할 RHEL 7의 신기능 5가지, 2014.06]<br/><br/><br/> [[Category:CentOS|Category:CentOS]]<br/>[[Category:오픈소스|Category:오픈소스]]<br/>[[Category:Linux|Category:Linux]]<br/>[[Category:Cloud|Category:Cloud]]<br/>[[Category:OS|Category:OS]]
CentOS
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
변수
보기
읽기
원본 보기
역사 보기
더 보기
검색
주요 메뉴
오픈소스 컨설팅
오픈소스
오픈소스 라이선스
오픈소스 커뮤니티
오픈소스 종류
오픈소스 현황
오픈소스 한글화
문자셋과 인코딩
Storage
Network
보안
고가용성
모니터링
오픈 API
오픈 서비스
Cloud
BigData
Android
산사랑 노트
둘러보기
인기 문서
최근 수정 문서
모든 문서
모든 분류
임의 문서
위키 사용법
자매 사이트
CMS
오비컨 홈페이지
오비컨 CMS
블로그
데모 - SuiteCRM
산사랑의 Twitter
산사랑의 Facebook
친구 사이트
공개SW 포털
OLIS
한국공개소프트웨어협회
AppCenter 지원본부
OLC
PSEG
개발자 블로그
블로터
개인 메뉴
메뉴 수정
양식함
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보