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
'Learning > └Essential & Admin' 카테고리의 다른 글
Network Configuration Administration(수정중) (0) | 2016.11.10 |
---|---|
xinetd & standalone Service Type (0) | 2016.11.05 |
문서정리 Linux_Essential (0) | 2016.11.05 |
Linux_ServerAdmin (12) 백업 과 복구 (0) | 2016.11.04 |