- 예전에는 LILO(Linux Loader)를 사용했지만 요즘은 부트로더로 대부분 GRUB 사용 (SULINUX, CentOS, Redhat, Fedora 등) - GRUB은 윈도우 운영체제와 리눅스 운영체제 등에서 모두 사용 할 수 있는 멀티부트로더임 - MBR에 저장됨 * 시스템에 전원이 공급되면 가장 먼저 ROM-BIOS에서 시스템 제어권을 가지고 장착된 하드웨어에 대한 점검과 인식을 함 * 끝나면 ROM-BIOS는 하드디스크의 첫번째 부트섹트의 MBR에 있는 부트로더(GRUB)에게 제어권을 넘겨줌 * 그러면 GRUB은 시스템 부팅을 시작함 < GRUB 초기화면> : 여기서부터 GRUB에 의해 부팅될 OS가 선택되고 시스템제어권이 넘어감 # GRUB 초기화면에서 'c' 키 입력 : GRUB의 명령모드 - 서버가 부팅되지 않을 경우 부팅과정을 변경 또는 편집하기 위해 (bash쉘에서 사용했던 명령어와 유사) - 명령어 모드에서 초기화면으로 돌아가려면 'ESC" 키 # GRUB 초기화면에서 'e' 키 입력 : 부팅메뉴 편집 <부팅메뉴 편집화면> 편집모드에서 사용할 수 있는 키 b : 선택된 부트메뉴의 명령어로 시스템을 부팅
새로운 계정이 생성되면 생성되는 계정명과 동일한 이름의 그룹이 자동생성 되고, 자동생성된 그룹에 속하게 된다. groupadd 명령어로 생성되는 그룹은 기본값으로 GID가 500 이상부터 생성된다. (GID 499까지는 시스템용) # 그룹 생성 [root@~ ]# groupadd sgroup # GID를 지정하여 그룹 생성 [root@~ ]# groupadd -g 700 kgroup # /etc/group 파일의 내용에 새로운 그룹이 생성됨 [root@push06 ~]# tail -n 3 /etc/group kbs:x:502: sgroup:x:500: kgroup:x:700: # 시스템용으로 사용할 그룹 생성 [root@push06 ~]# groupadd -r systemgroup [root@push06 ~]# tail -n 2 /etc/group protoss:x:501: systemgroup:x:160: # 그룹 삭제 [root@push06 ~]# groupdel systemgroup
사용자 계정 추가/ 삭제 useradd를 통한 사용자 계정 추가. 1.명령어 형식 useradd [옵션][계정명] passwd [설정할 패스워드] 2.설명 useradd명령어와 passwd 설정으로 사용자 계정이 추가된다. /home 디렉토리 하위에 추가한 계정명의 홈디렉토리가 성생된다. /home/hky 3. radd시 사용자 정보가 저장되는 중요 파일. /etc/passwd /etc/shadow /etc/group 예) [root@web /]# useradd hky [root@web /]# passwd hky Changing password for user hky. New UNIX password: BAD PASSWORD: it does not contain enough DIFFERENT characters Retype new UNIX password: passwd: all authentication tokens updated successfully. You have new mail in /var/spool/mail/root [root@web /]# cd home [root@web home]# ls -al total 48 drwxr-xr-x 5 root
APM이란 apache , php , mysql의 앞자를 다서 말하는 것으로apache는 브라우져에 연동할수있게 하는 웹서버를 말한다. php는 mysql의 데이터 베이스를 apache에 뿌려주어 사용자가 눈으로 볼수있게 만들어주는 웹프로그래밍 언어다.mysql 은 데이터 베이스를 의미한다. apm을 이용한 웹서버 구축과정configure : 환경 설정을 하는 명령어로 컴파일할때 옵션을 넣거나하여 사용된다make : 소스 파일을 컴파일하는 과정. 컴파일이란 사용자가 소스파일을 실행가능한 상태로 만들어 주는 과정이다.make install : make 과정에서 컴파일후 생성된 설치파일을 실행하여 설치하는 과정이다. rpm -qa | grep httpdrpm -qa | grep mysql rpm -qa | grep php 등의 명령어 이용으로 기존에 라이브러리설치되어 있던 apm이 있는지 확인한다.rpm -e 명령으로 기존 apm을 삭제한다. 다운로드 받을 사이트나 다운로드 받고난후 저장할 디렉토리먼저 확인.생성 한다. wget "$DOWN_DIR/httpd-x.x.x.tar.z # 설치할 아파치 소스의 압축파일을 다운로드 한다.tar xvfpz htt
httpd.conf 파일 문법 검사 : apachectl configtest
[root@push06 dev]# cat /proc/scsi/scsiAttached devices:Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: Hitachi HDS72105 Rev: JP2O Type: Direct-Access ANSI SCSI revision: 05Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: Hitachi HDS72105 Rev: JP2O Type: Direct-Access ANSI SCSI revision: 05 <SATA 일때>[root@push06 ~]# smartctl -i /dev/sdasmartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.18-348.16.1.el5] (local build)Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net === START OF INFORMATION SECTION ===Device Model: Hitachi
프로세스의 상태를 확인하는 명령어 사용형식 : ps [옵션] # ps -ef -e : 모든 프로세스 표시 -f : 전체 경로로 프로세스 표시 # ps -f -U USERID -u USERID 계정이 USERID인 사람으로 실행되는 프로세스 보기 # 계정 메모리 실사용량 확인 ps -o user,pid,rss,comm --sort -rss -u 계정명 # 계정 메모리 실사용량합계 ps -o rss -u 계정명 | awk '{sum+=$0} END {print sum}
리눅스 디렉토리 구조 주요 디렉토리 "/"디렉토리는 최상위 디렉토리이다 / 디렉토리 하위에는 여러 가지 하위 디렉토리 들이 있다. /root 디렉토리 : 관리자의 홈디렉토리를 의미한다. /boot :부팅 관련파일 커널디렉토리 /etc : 시스템 설정파일 디렉토리 /usr : 응용프로그램 디렉토리 /var : 로그파일, 메일 디렉토리 /lib : 라이브러리 디렉토리 /tmp : 임시 디렉토리 /home : 일반사용자의 홈디렉토리 /dev : 장치파일 디렉토리 /bin : 명령어 등 . : 현재 디렉토리를 의미함 .. : 현재 디렉토리의 상위디렉토리 의미. ~ : 사용자의 홈디렉토리(틸드경로)
# DSO (dynamic shared object)아파치 설치 방식에는 dso와 static이 있다.dso 방식은 아파치를 먼저 컴파일하고 다른 모듈들을 추가로 설치할 때 아파치를 다시 컴파일 하지 않고 모듈을 추가 할 수 있다.static방식은 사용하는 모듈을 모두 적재한 다음 사용자의 요청이 있으면 바로 응답해 속도는 빠르지만 아파치가 실행할때 모든 모듈을 로드하므로 시스템 자원을 많이 소모한다.dso방식은 사용자의 요청이 있을 때만 모듈을 로드하므로 static보다 조금 느리지만 시스템 자원을 적게 소모하고, 최근 하드웨어 발전으로 실행속도 크게 차이나지 않아서 dso방식을 사용한다. #모듈 종류mod_rewrite 주속 재해석mod_security 웹방화벽 mod_url 한글 url 지원mod_ssl 보안웹mod_cband 웹사이트 트래픽제어http_core 아파치 핵심적인 기능을 내포하고 있다.mod_access 호스트 기반의 접근제어mod_actions 파일타입/메소드 기반의 스크립트 실행 (Apache 1.1 이상)mod_alias Aliases 설정 및 리다이렉트mod_asis
[root@~]# vi httpd.conf NameVirtualHost * Include conf/vhosts.conf [root@~]# vi vhosts.conf <VirtualHost *> // vhost는 잘못된 주소를 요청 받았을때 맨위에 설정된 <VirtualHost*>를 보여주므로, ServerAdmin kbs@abc1234.com // 이를 방지하기 위해 default page 설정 DocumentRoot /opt/sadmin/default ServerName default.abc1234.com RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] </VirtualHost> <VirtualHost *> // 실제 vhost 설정 ServerAdmin kbs@abc1234.com DocumentRoot /home/kbs/www ServerName abc1234.com RewriteEngine on RewriteCond %{REQUEST
# root의 cron 설정 확인 : crontab -l (루트계정에서) 1. /etc/crontab 이용 # run-parts 01 * * * * root run-parts /etc/cron.hourly // 매시 1회 자동실행하기 위한 시스템 크론 설정, /etc/cron.daily 디렉토리내에 존재하는 스크립트 파일 실행 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 // 매월 (분, 시, 일, 월, 요일) * : 모든 숫자 - : 연속된 숫자 2. crontab 명령어를 이용 일반 사용자가 crontab 명령어를 사용하려면 /etc/cron.allow 에 등록※ cron.allow 파일이 있다면 root라도 등록 되어 있어야 crontab 설정 가능 [root@~ ]# cat /etc/cron.allowrootabcdefg1234567 root를 비롯한 사용자들
/- 최상위 디렉토리인 루트디렉토리.- 파티션 설정 시 반드시 존재하여야 함 /bin - 리눅스의 기본 명령어들이 들어있는 디렉토리- root와 일반사용자들도 사용 /sbin - 시스템 관리자용 명령어들이 들어있는 디렉토리 /lib - 프로그램이 필요로 하는 라이브러리 파일 존재- /lib/module : 커널이 필요로 하는 커널모듈 파일 존재 /boot- 시스템 부팅에 관련된 파일을 저장하고 있는 디렉토리 /dev- 시스템 디바이스 파일을 저장하고 있는 디렉토리- 컴퓨터에 연결된 모든 장치가 파일로 표현 /etc - 시스템 환경 설정 파일이 있는 디렉토리 /home- 사용자의 홈디렉토리, ID와 동일한 이름으로 디렉토리를 가짐 /root - root의 홈디렉토리 /mnt - 플로피, CD-ROM 등 다른 장치들을 마운트 할때 사용하는 디렉토리 /proc- 현재 메모리에 존재하는 모든 작업들이 파일형태로 존재하는 가상디렉토리 /var - 시스템운용중에 생성되었다가 삭제되는 데이터를 저장하는 디렉토리 /var/log - 각종 로그파일이 저장되는 디렉토리 /var/spool/mail- 메일이 일시적으로 저장되는 디렉토리 /tmp - 일시적인 저장을 위한 디렉토리