본문 바로가기

Learning/ └Essential & Admin

문서정리 Linux_ServerAdmin

 


   Linux Admin 과정 정리 문서

 


1. 디렉토리 용도와 종류

 # ls /
 home    media  root   tmp
 bin     dev    lib    sbin       usr
 boot    etc    mnt    proc       var

 

2. 장치 관리(EX: 디스크 장치 관리)

 (ㄱ) 장치인식(kudzu)
 (ㄴ) 파티션 작업(fdisk)
 (ㄷ) 파일시스템 작업(mkfs)
 (ㄹ) 마운트 작업(mount)

(ㄱ) 장치 인식

 (선수지식)
 HDD 구조(sector -> track -> cylinder -> partition -> disk)

 [참고] 하드웨어 정보 확인(서비스 이름: haldaemon)
 (GUI) # hal-device-manager &
 (TUI) # lshal

 [참고] 서비스 관리툴
 # ntsysv                (# setup)
 # system-config-service (# serviceconf)
 # chkconfig --list ; chkconfig kudzu on

 (장치인식)
 - kudzu 서비스 ON(# chkconfig kudzu on)
 - 물리적 디스크 장착(추가)
 - 서버 재부팅(# init 6)
 - 부팅이후 확인(# ls -l /dev/sd?)

(ㄴ) 파티션 작업

 (선수지식)
 디스크 장치 이름/파티션 이름
 - IDE : /dev/hda, /dev/hdb, /dev/hdc, /dev/hdd
  Primary Partition:  /dev/hda1 ~ /dev/hda4
  Extended Partition
  - Logical Partition: /dev/hda5 ~ /dev/hda16
 - SCSI: /dev/sda, /dev/sdb, /dev/sdc, /dev/sdd, ....
  Primary Partition:  /dev/sda1 ~ /dev/sda4
  Extended Partition
  - Logical Partition: /dev/sda5 ~ /dev/sda63)

 (파티션 작업)
 # fdisk /dev/sda ?

 # fdisk -l           (# ls -l /dev/sd?)
 # fdisk -l /dev/sda  (# ls ?l /dev/sd*)

 # fdisk -l | grep Disk

(ㄷ) 파일시스템 작업

 (선수지식)
 파일 시스템?
 파일 시스템의 종류
  ext2
  ext3 - 2001년도
  ext4 - RHEL 6.X(CentOS 6.X)
  xfs

 (파티션 작업)
 # mkfs -t ext3 /dev/sdb1
 # mkfs.ext3 /dev/sdb1

 # mkfs.ext2 /dev/sdb1
 # mkfs.ext3 -m 10 /dev/sdb1
 # mkfs.ext3 -L mkfs /dev/sdb1
 # mkfs.ext3 -b [1024|2048|4096] /dev/sdb1
 [참고] # dumpe2fs /dev/sda1

(ㄹ) 마운트 작업(mount CMD, /etc/fstab)

 마운트 확인
  # df -h
  # mount
 마운트 관련 파일
  /etc/mtab(/proc/mounts)
  /etc/fstab
  [참고] e2label CMD
         # e2label /dev/sdb1
         # e2label /dev/sdb1 /testmount
 마운트 관련 명령어
  mount CMD
   # mount [-t ext3] [-o rw] /dev/sdb1 /testmount
   # mount /dev/sdb1 /testmount
   # mount /testmount (/etc/fstab)
   OPTIONS: ro, noatime, nosuid, usrquota/grpquota

   [참고] Quota 설정(EX: /home)
   (Quota ON)
   # cd ; umount /home
   # mount -o usrquota /home (# vi /etc/fstab)
   # quotacheck -am     (# ls -al /home/aquota.user)
   # edquota -u qtest1  (# edquota -p qtest1 qtest2)
   # quotaon /quota
   (Quota OFF)
   # quotaoff /home
   # cd ; umount /home ; mount /home (# vi /etc/fstab)
   (Quota List)
   # quota qtest1
   # repquota -a
  umount CMD
   # umount /dev/sdb1
   # umount /testmount

   (Busy File System umount)
   # umount /home
   # fuser -cu /home
   # wall "Messages"
   ..... 30분 정도 .....
   # fuser -cu /home
   # fuser -ck /home
   # umount /home
  mount -a CMD (/etc/fstab)
   # mount -a
  umount -a CMD(/etc/mtab)
   # umount -a
 [참고] CD 마운트(CD-ROM 마운트)
  (자동 마운트)
  Automount
  # cd /media/CentOS_5.4_Final ; ls
  # cd ; umount /media/CentOS_5.4_Final
  (수동 마운트)
  # mkdir -p /mnt/cdrom ; mount -t iso9600 -o ro /dev/cdrom /mnt/cdrom
  # cd /mnt/cdrom ; ls
  # cd ; umount /mnt/cdrom
  [참고] ISO 파일 마운트
  # mkiosfs -o /test/a.iso /etc/sysconfig
  # mkdir -p /mnt/ISO ; mount -t iso9660 -o loop /test/a.ios /mnt/ISO
  # cd /mnt/ISO ; ls
  # cd ; umount /mnt/ISO
 [참고] USB 마운트
  (자동 마운트)
  Automount
  # cd /media/disk ; ls
  # cd ; umount /media/disk
  (수동 마운트)
  # mkdir -p /mnt/USB ; mount -t vfat /dev/hdb1 /mnt/USB
  # cd /mnt/USB ; ls
  # cd ; umount /mnt/USB
 [참고] NTFS 마운트
 - 카페 자료 참고(cafe.daum.net/bscsolaris -> "백승찬의 리눅스" 게시판 -> 11번) 
  # mkdir -p /mnt/ntfs ; mount -t ntfs /dev/hda1 /mnt/ntfs
  # cd /mnt/ntfs ; ls
  # cd ; umount /mnt/ntfs

(ㅁ) 파일시스템 점검
 [주의] umount 가능(/home, /data1, /oracle....) -> umount CMD + fsck CMD
        umount 불가능(/, /usr, /var, /tmp, ...) -> single user mode + fsck CMD

 # fsck /dev/sda1
 # fsck -y /dev/sda1

 # fsck.ext3 /dev/sd1
 # e2fsck /dev/sda1

 [작업 순서] fsck 명령어 수행 작업 순서
 (umount + fsck CMD)
  # umount /home
  # fsck [-y] /dev/sda3
  # mount /home
 (single user mode + fsck CMD)
  # init 1
  # fsck [-y] /dev/sda1
  # init 5

(ㅂ) 파일시스템 모니터링(df CMD, du CMD)
 df CMD
  # df -k (-K : KBytes)
  # df -m (-m : MBytes)
  # df -h (-h : Human)

  # df -h /home
  # df -h /home /data1

  # df -h -T      (# alias df='df -h -T')
  # df -h -F ext2
  # df -h -F ext3

  # alias ddf='df -h ; echo ; df -i'
 du CMD
  # du -k /etc/sysconfig
  # du -m /etc/sysconfig
  # du -h /etc/sysconfig

  # du -sk /etc/sysconfig

  [참고] df/du CMD
  # df -h
  # du -sk /var
  # cd /var ; du -sk * | sort -nr | more

 

3. LVM(Logical Volume Manager)
 LVM 용어? PV(PE), VG, LV(LE)
 LVM 구성 방식: striping (PE1 <---> LE1)
         mirroring(PE2 <---> LE1)
 LVM 작업 순서
 (ㄱ) 시스템 아이디(fdisk CMD)
  # fdisk /dev/sdc
  # fdisk /dev/sdd
  # fdisk /dev/sde
  # fdisk /dev/sdf
  # fdisk -l | grep LVM
 (ㄴ) PV 생성(pvcreate CMD)
  # pvcreate /dev/sdc1 /dev/sdd1 /dev/sde1
 (ㄷ) VG 생성(vgcreate CMD)
  # vgcreate vg1 /dev/sdc1 /dev/sdd1 /dev/sde1
 (ㄹ) LV 생성(lvcreate CMD)
  # lvcreate -L 1500G -n lv1 vg1
  # lvcreate -L 500M -n lv2 vg1
 (ㅁ) F/S 생성(mkfs CMD)
  # mkfs.ext3 /dev/vg1/lv1
  # mkfs.ext3 /dev/vg1/lv2
 (ㅂ) 마운트(mount CMD, /etc/fstab)
  # mkdir /lv1 /lv2
  # vi /etc/fstab
  # mount /lv1
  # mount /lv2


4. RAID 구성
 RAID 종류
 - Software RAID(EX: OS 툴)
 - Hardware RAID(EX: Storage)

 RAID 0
 RAID 1
 RAID 5
 RAID 6
 RAID 7 

 (ㄱ) RAID 디스크/파티션 설정
      # fdisk -l /dev/sd? | grep raid
      fdisk CMD(EX: fdisk /dev/sdc)
 (ㄴ) RAID 구성
      mdadm --create 생성(/etc/mdadm.conf)
 (ㄷ) F/S 생성
      mkfs.ext3 CMD(EX: mkfs.ext3 /dev/md0)     
 (ㄹ) 마운트
      mount CMD(/etc/fstab)

 RAID 0 구성
  # mdadm --create /dev/md0 --level=0 --raid-device=3 /dev/sdc1 /dev/sdd1 /dev/sde1
  # mdadm --detail --scan >> /etc/mdadm.conf
  # mkfs.ext3 /dev/md0
  # mkdir /raid0 ; vi /etc/fstab ; mount /raid0
 RAID 1 구성
  # mdadm --create /dev/md0 --level=1 --raid-device=2 /dev/sdc1 /dev/sdd1
  # mdadm --detail --scan >> /etc/mdadm.conf
  # mkfs.ext3 /dev/md0
  # mkdir /raid1 ; vi /etc/fstab ; mount /raid1
 RAID 5 구성
  # mdadm --create /dev/md0 --level=5 --raid-device=3 /dev/sdc1 /dev/sdd1 /dev/sde1
  # mdadm --detail --scan >> /etc/mdadm.conf
  # mkfs.ext3 /dev/md0
  # mkdir /raid5 ; vi /etc/fstab ; mount /raid5
------------------------------------------------------------------------------------


5. 스왑 관리(Swap File & Swap Partition)
 스왑이슈
  언제 스왑을 추가하는가?
  스왑의 크기?
  스왑을 추가하면 성능이 좋아지는가?

 # mkdir /swap ; dd if=/dev/zero of=/swap/swapfile bs=1k count=1024000
 # mkswap /swap/swapfile
 # swapon /swap/swapfile
 # vi /etc/fstab

 # swapoff /swap/swapfile
 # rm /swap/swapfile
 # vi /etc/fstab

 # cat /proc/swaps
 # free
 # top


6. minfree(Minimum Free Space) - 디스크 안에 차후 시스템 풀났을 경우 관리자의 시스템운영을 위해 남겨둔 공간
 minfree? 0 ~ 50%(5%)

 # mkfs.ext3 -m 5 /dev/sdb1
 # tune2fs -m 1 /dev/sdb1


7. Software Admin
 rpm CMD(RadHat Packages Manager)
  (rpm 패키지 다운로드 사이트)
  http://rpmfind.net
  http://rpm.pbone.net
  ftp://ftp.daum.net
  (rpm 설치)
  # rpm -(ivh|Fvh|Uvh) [--nodeps] pkg.rpm
  (rpm 정보 확인)
  # rpm -qa | grep pkg (# rpm -q pkg)
  # rpm -qi pkg
  # rpm -qf /etc/passwd
  # rpm -ql pkg
  (rpm 삭제)
  # rpm -e [--nodeps] pkg

  
 yum CMD(Yellowdog Update Manager)
  (yum 패키지 설치)
  # yum [-y] (install|update) pkg
  # yum -y update
  (yum 패키지 확인)
  # yum list [installed|available]
  # yum search pkg
  # yum info pkg
  (yum 패키지 삭제)
  # yum (remove|erase) pkg

[참고] kernel upgrad

# rpm ivh kernel.rpm

# yum install kernel.rpm


 source code(EX: pkg.tar.gz)
  # tar xvzf pkg.tar.gz
  # cd pkg
  # ./configure --prefix=/usr/local/pkg ( # ./configure --help)
  # make
  # make install

[참고] APM(Apache + PHP + MySQL) 설치

ATJO(Apache + Tomcat + JAVA(JDK/SDK) + Oracle) 설치


8. 부팅과정
 (ㄱ) F/W 단계
      - POST(Power On Self-Test)
      - 부팅 순서
 (ㄴ) Boot Loader 단계(Grub 단계)
      - /boot/grub/grub.conf(/etc/grub.conf, /boot/grub/menu.lst)
      - Kernel 실행, Initial RAM DISK
 (ㄷ) Kernel 단계
      - /boot/vmlinuz-2.6.18-164.el5
      - /etc/sysctl.conf
      - Kernel Modules(EX: Device Driver)
        (lsmod, instmod, rmmod, modprobe)
 (ㄹ) Init 단계
      - /sbin/init(/etc/inittab)
      - (a) initdefault(5) : 기본 런레벨 결정
      - (b) /etc/rc.d/rc.sysinit 실행
      - (c) /etc/rc5.d/S##script 실행

  (부팅)         (현재)       (현재)
  /etc/rc5.d <---심볼릭---> /etc/init.d <---심볼릭---> /etc/rc.d/init.d
  S##script        script       script

  (서비스 ON/OFF)
  # chkconfig sshd on
  # service sshd restart
  [참고] ntsysv(setup), system-config-services(serviceconf), chkconfig


9. 사용자/그룹 관리
 사용자 관리
  /etc/passwd, /etc/shadow
  useradd CMD
   # useradd user01
   [참고] oracle 사용자, wasuser 사용자
   # groupadd oinstall
   # groupadd dba
   # useradd -g oinstall -G dba -d /oracle oracle
   # passwd oracle

   # groupadd staff
   # useradd -g staff -d /was wasuser
   # passwd wasuser
  usermod CMD
  userdel CMD
   # userdel user01
   # userdel -r user01
  [참고] /etc/skel(skelton)
------------------------------------------------------------------------------------
 그룹 관리
  /etc/group
  groupadd CMD
   # groupadd class1
  groupmod CMD
   # groupmod -n class2 class1
  groupdel CMD
   # groupdel class2


10. 정기적인 작업 수행
 at CMD
  # at 1300
  # at -l   (# atq)
  # at -r N (# atrm N)
 crontab CMD
  # crontab -e [-u user01]
  # crontab -l [-u user01]
  # crontab -r [-u user01]
--------------------------------------------------------------------
분 시 일 월 요일 명령어
--------------------------------------------------------------------
0 1 * * * /root/bin/backup.sh
0 1,12 * * * /root/bin/backup.sh
0 1 * * 0 /root/bin/backup.sh
0 1 * * 1,3 /root/bin/backup.sh
0 1 1 * * /root/bin/backup.sh
0 1 1,15 * * /root/bin/backup.sh
--------------------------------------------------------------------
0 1 1 * 0 /root/bin/backup.sh
0 1 * * 0 /root/bin/backup.sh

 vi /root/bin/backup.sh
 --------------------------------------
 DAY=`date +%d`
 if [ $DAY -le 7 ] ; then
  백업 수행
 else
  백업 수행하지 않음
 fi
 --------------------------------------


11. 백업과 복구
 tar CMD
  # tar cvf file.tar file1 file2 file3
  # tar tvf file.tar
  # tar xvf file.tar

  # tar cvzf file.tar.gz file1 file2 file3
  # tar tvzf file.tar.gz
  # tar xvzf file.tar.gz

  # tar cvjf file.tar.bz2 file1 file2 file3
  # tar tvjf file.tar.bz2
  # tar xvjf file.tar.bz2