DevOps/리눅스 / / 2016. 6. 26. 10:05

리눅스 명령어 실습 요약(저장소 관리 및 네트워크 관련)

반응형













리눅스 명령어 실습 요약(저장소 관리 및 


네트워크 관련)





CPIO 명령 실습

 

# find . -name '*.c' -print | cpio -o > data.cpio

  # ls | cpio -o > ../test.cpio


  -  CPIO 화일 복원

 

# cpio -idmv < test.cpio

# cpio -i < data.cpio

# cpio -dmvi < example.cpio

# cpio -dmvi < /root/test.cpio

 

 

  - gz으로 압축되어 있는것을 풀기

 

# gunzip targetfile.cpio.gz

# cpio -idmv < targetfile.cpio

# cpio -iv < directory.cpio


dump 실습예제

# dump -0f home_backup /home 

# dump -0f usr_backup /dev/sda5 



#restore - dump된 파일을 복구할 때 사용하는 명령.

- restore [option] [dump_file]


option

-i : 대화식으로 복구 파일을 선택 후 복원

-f : 백업 파일명으로 지정

-r : 전체 복원


*dump 명령어 실습 예)


# mkdir backup - 백업할 폴더를 생성한다.

# cd backup


# dump -0f home-backup /home 

  DUMP: Date of this level 0 dump: Mon Nov 17 16:16:36 2008

  DUMP: Dumping /dev/sda6 (/home) to home-backup

  DUMP: Label: /home

  DUMP: Writing 10 Kilobyte records

  DUMP: mapping (Pass I) [regular files]

  DUMP: mapping (Pass II) [directories]

  DUMP: estimated 1890 blocks.

  DUMP: Volume 1 started with block 1 at: Mon Nov 17 16:16:41 2008

  DUMP: dumping (Pass III) [directories]

  DUMP: dumping (Pass IV) [regular files]

  DUMP: Closing home-backup

  DUMP: Volume 1 completed at: Mon Nov 17 16:16:42 2008

  DUMP: Volume 1 1820 blocks (1.78MB)

  DUMP: Volume 1 took 0:00:01

  DUMP: Volume 1 transfer rate: 1820 kB/s

  DUMP: 1820 blocks (1.78MB) on 1 volume(s)

  DUMP: finished in 1 seconds, throughput 1820 kBytes/sec

  DUMP: Date of this level 0 dump: Mon Nov 17 16:16:36 2008

  DUMP: Date this dump completed:  Mon Nov 17 16:16:42 2008

  DUMP: Average transfer rate: 1820 kB/s

  DUMP: DUMP IS DONE

# ls -l

-rw-r--r-- 1 root root 1863680 11월 17 16:16 home-backup


# file home-backup

# du -sh home-backup


# restore -rf home-backup - dump된 화일 복원


# ls

aquota.user  install.log.syslog  ks.cfg  lost+found  test1  test2  test3 

home-backup  restoresymtable                  


# restore -if home-backup 

restore > help                 

Available commands are:

        ls [arg] - list directory

        cd arg - change directory

        pwd - print current directory

        add [arg] - add `arg' to list of files to be extracted

        delete [arg] - delete `arg' from list of files to be extracted

        extract - extract requested fil files

        setmodes - set modes of requested directories

        quit - immediately exit program

        what - list dump header information

        verbose - toggle verbose flag (useful with ``ls'')

        prompt - toggle the prompt display

        help or `?' - print this list

If no `arg' is supplied, the current directory is used

restore > ls

aquota.user         lost+found/        test1/          test2/

              terran/              test3/


restore > add test1 - 복원할 파일 또는 폴더를 선택

restore > add test2 - 복원할 파일 또는 폴더를 선택

restore > add test3 - 복원할 파일 또는 폴더를 선택

restore > ls

aquota.user         lost+found/        *test1/     

install.log.syslog           *test2/        *test3/       


restore > extract   - 화일 추출.

You have not read any volumes yet.

Unless you know which volume your file(s) are on you should start

with the last volume and work towards the first.

Specify next volume # (none if no more volumes): 1

set owner/mode for '.'? [yn] y


restore > quit       - 복원 종료

# ls -l

합계 1836

-rw-r--r--  1 root  root  1863680 11월 17 16:16 home-backup

drwx------ 18 test1 test1    4096 11월 17 10:09 test1

drwx------  4 test2 test2    4096 11월 17 10:10 test2

drwx------  3 test3 test3    4096 11월 12 09:33 test3


dd (Disk Dump) 명령

형식

- dd if=[input_device] of=[output_device]


실습 예)

#fdisk /dev/sda    -dump할 파티션생성

# df -l

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/sda2              9920624   1125780   8282776  12% /

/dev/sda1               101086     11128     84739  12% /boot

tmpfs                   512776         0    512776   0% /dev/shm

/dev/sda3              1929068      2880   1828196   1% /data1


# dd if=/dev/sda1 of=/dev/sda5

208782+0 records in

208782+0 records out

106896384 bytes (107 MB) copied, 17.1724 seconds, 6.2 MB/s


# mkdir /bak-boot

# mount /dev/sda5 /bak-boot


# ls /bak-boot

System.map-2.6.18-92.el5  grub  lost+found   symvers-2.6.18-92.el5.gz

config-2.6.18-92.el5    initrd-2.6.18-92.el5.img  message   vmlinuz-2.6.18-92.el5

# ls /boot

System.map-2.6.18-92.el5  grub  lost+found   symvers-2.6.18-92.el5.gz

config-2.6.18-92.el5          initrd-2.6.18-92.el5.img  message     vmlinuz-2.6.18-92.el5


- 원본 화일과 동일함을 확인




저장소(HD)관리 및 공간할당


목차

1. 가상 머신에 linux sever 만들기

2. linux 설치방법 익히기

3. HD 추가 및 관리방법 익히기

4. 관련 명령어 익히기


1. Linux 설치 - 가상머신상에 리눅스 설치


Step 1 VirtualBox 다운로드

Step 2 Centos 다운로드 


* https://www.virtualbox.org/

* http://vault.centos.org/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD


2. 가상머신 Server 만들기


Step 1 가상머신 실행

-새로만들기 -> Sever 생성


Step 2 Centos 설치 

-Server Computer CDROM에 ISO 실장 


Step 3 Server 실행 -> OS 설치 과정 따라 함


 

3. Server에 HD 1개 추가하기



Step 1 저장소 메뉴에서 추가 -> Server 실행 


* 데스크 탑 설치 안된경우


#ifup ifcfg-enp0s3 /* NAT 네트워크 연결 및 작동 

#yum list updates /* SW Update

#yum update

#yum -y groupinstall "GNOME Desktop"


#startx



HD 한개 추가하기


#ls -al /dev/sd*

#fdisk /dev/sdb

   ...

#mkfs -t ext4 /dev/sdb1


#ls /dev/sd*


#mkdir /disk-b

#mount /dev/sdb1 /disk-b

#mount 

#cd /disk_b

#cp /a* .

#ls -al



부팅시 자동 마운트 설정


#vi /etc/fstab

             /dev/sdb1  /disk-b ext4 defaults 1 2

#df



여러개 디스크를 하나로 사용하기(mdadm)


-저장용량의 지속적 증가에 대처하기위한 방안필요(HD 추가방식)


-추가시 고려사항  (신뢰성, 고장허용, 교체용이)


RAID(Redundant Array of Independent Disks)

 -HW 구현방법

 -SW 구현방법

 

Liner RAID -직렬 연결 (1+1...=n)하여 하나의 디스크로 활용

RAID 0 - n개의 디스크에 균등배분 저장하는 방식

RAID 1 - n개의 디스크에 같은 데이터 저장하는 방식

RAID 5 - n개의 디스크에 균등배분 저장 

* 저장공간은 n-1: 1개 디스크 용량이 복구 데이터 저장용으로 사용됨

RAID 6 - n개의 디스크에 균등배분 저장

* 저장공간은 n-2: 2개 디스크 용량이 복구 데이터 저장용으로 사용됨

RAID 1+0 



Liner RAID 실습


1. 서버에 2개 하드 추가 설치

2. fdisk /dev/sdb (타입 fd)

...

3. mdadm --create /dev/md9 --level=liner --raid-devices=2 /dev/sdb1 /dev/sdc1


4. mdadm --detail --scan

  mdadm --stop /dev/mdliner

  mdadm --run  /dev/mdliner

              5. mkfs.ext4 /dev/mdliner

6. mkdir /raidliner

  mount /dev/mdliner /raidlinear

  df

  vi /etc/fstab 추가 - 부팅시 자동 마운트 되게

  mdadm --detail /dev/md9



RAID0 실습


1. 서버에 2개 하드 추가 설치

2. fdisk /dev/sdb

...

3. mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1


4. mdadm --detail --scan


              5. mkfs.ext4 /dev/md0

6. mkdir /raid0

  mount /dev/md0 /raid0

  df

  vi /etc/fstab 추가 - 부팅시 자동 마운트 되게

  mdadm --detail /dev/md0 




RAID1 실습


1. 서버에 2개 하드 추가 설치

2. fdisk /dev/sdb

...

3. mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1


4. mdadm --detail --scan


              5. mkfs.ext4 /dev/md1

6. mkdir /raid1

  mount /dev/md1 /raid1

  df

  vi /etc/fstab 추가 - 부팅시 자동 마운트 되게

  mdadm --detail /dev/md01



RAID5 실습


1. 서버에 3개 하드 추가 설치

2. fdisk /dev/sdb

...

3. mdadm --create /dev/md5 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1



4. mdadm --detail --scan

5. mkfs.ext4 /dev/md5

6. mkdir /raid5

  mount /dev/md5 /raid5

  df

  vi /etc/fstab 추가 - 부팅시 자동 마운트 되게

  mdadm --detail /dev/md5




문제 발생 테스트


-해당 디스크 제거 한후 서버 실행

-응급모드로 접속

비번 입력후 로그인

/dev/체크

mdadm --run /dev/md1

정상작동 확인

 

RAID6 실습


1. 서버에 2개 하드 추가 설치

2. fdisk /dev/sdb (타입 fd)

...

3. mdadm --create /dev/md6 --level=6 --raid-devices=2 /dev/sdb1 /dev/sdc1


4. mdadm --detail --scan


              5. mkfs.ext4 /dev/md6

6. mkdir /raid6

  mount /dev/md6 /raid6

  df

  vi /etc/fstab 추가 - 부팅시 자동 마운트 되게

  mdadm --detail /dev/md01



RAID1+0 실습


1. 서버에 4개 하드 추가 설치

  - 2개씩 묶어 md2,md3 를 레벨 1 생성

  - md2,md3를 레벨 0으로 묶음 -> md10 생성

  

2. fdisk /dev/sdb

...

3. mdadm --create /dev/md10 --level=0 --raid-devices=2 /dev/md2  /dev/md3


4. mdadm --detail --scan

              5. mkfs.ext4 /dev/md10

6. mkdir /raid10

  mount /dev/md10 /raid10

  df

  vi /etc/fstab 추가 - 부팅시 자동 마운트 되게

  mdadm --detail /dev/md01



문제 발생 테스트


-해당 디스크 제거 한후 서버 실행

-응급모드로 접속

비번 입력후 로그인

/dev/체크

mdadm --run /dev/md1

정상작동 확인





LVM(Logical Volume Manager)


   - 여러개의 물리볼륨(파티션)을 볼륨그룹으로 합쳐서 하나의 물리그룹을 만들고

    이를 여러개의 논리볼륨 나누어 사용할 수 있게 한다



LVM 실습

1. 서버에 2개 하드 추가 설치

2. fdisk /dev/sdb (타입 8e)

...

3. pvcreate /dev/ sdb1

  pvcreate /dev/ sdc1


  vgcreate myLG sdb1 /dev/ sdc1

  vgdisplay

  lvcreate --size 1G --name LG1 myLG

      lvcreate --size 2G --name LG2 myLG

      lvcreate --extents 100%FREE --name LG3 myLG


  ls -l /dev/myLG

  

  mkfs.ext4  /dev/../LG1

         ...

    df


              4. 마운트

  mkdir /lg1

  mount /dev/myLG/LG1 /lg1

  df

  vi /etc/fstab 추가 - 부팅시 자동 마운트



연습과제 

-RAID 에 리눅스 설치하기 

-설치 시 저장장소 타입을 RAID 0 로 한다.

-설치 완료후에 디스크 하나 제거하고 부팅해 본다

-정상 부팅되는 것을 확인



사용자별 사용공간 할당


vi /etc/fstab   /* 쿼터를 할당할 하드에 다음 추가


/dev/sdb1 /home ext4 defaults,usrquota 0 0



reboot 또는 mount -o remount /home



cd /home /* 쿼타 루트 디렉토리로 이동


quotaoff -avug

quotacheck -avug

rm -rf aquota.*

quotacheck -avug

touch quota.user aquota.group

chmod 600 quota.*

quotacheck -avug

quoton -avug


edquota -u guest1 /*quota file 편집


softlimt hardlimit 수정후 빠져 나옴


repquota /home

edquota -p user1 user2 user3    /* quota 복사

/* quota test


su guest1

cd ~

cp /test1.c .

cp test1.c  test2.c

cp test1.c  test3.c

cp test1.c  test4.c




쿼타 실습 예


[root@localhost ~]# yum remove quota

[root@localhost ~]# yum install quota



[root@localhost ~]# cd /home

[root@localhost home]# ls

aquota.user  lost+found  user  user1  user2  user3  usergroup


[root@localhost home]# quotaoff -avu

/dev/sda2 [/home]: user quotas turned off

[root@localhost home]# quotacheck -auv

quotacheck: Your kernel probably supports journaled quota but you are not using it.

 Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.

quotacheck: Scanning /dev/sda2 [/home] done

quotacheck: Cannot stat old user quota file /home/aquota.user:. Usage will not be subtracted.

quotacheck: Old group file name could not been determined. Usage will not be subtracted.

quotacheck: Checked 207 directories and 203 files

quotacheck: Old file not found.

[root@localhost home]# ls

aquota.user  lost+found  user  user1  user2  user3  usergroup

[root@localhost home]# chmod 600 aquota*

[root@localhost home]# quotacheck -auv

quotacheck: Your kernel probably supports journaled quota but you are not using it.

 Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.

quotacheck: Scanning /dev/sda2 [/home] done

quotacheck: Old group file name could not been determined. Usage will not be subtracted.

quotacheck: Checked 207 directories and 204 files

[root@localhost home]# quotaon -avu

/dev/sda2 [/home]: user quotas turned on

[root@localhost home]# repquota -a

*** Report for user quotas on device /dev/sda2

Block grace time: 7days; Inode grace time: 7days

                        Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

----------------------------------------------------------------------

root      --      20       0       0              2     0     0       

user      --   39940       0       0            380     0     0       

user1     --      28       0       0              7     0     0       

user2     --      28       0       0              7     0     0       

user3     --      28       0       0              7     0     0       

usergroup --      28       0       0              7     0     0       



[root@localhost home]# repquota /home

*** Report for user quotas on device /dev/sda2

Block grace time: 7days; Inode grace time: 7days

                        Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

----------------------------------------------------------------------

root      --      20       0       0              2     0     0       

user      --   39940       0       0            380     0     0       

user1     --      28       0       0              7     0     0       

user2     --      28       0       0              7     0     0       

user3     --      28       0       0              7     0     0       

usergroup --      28       0       0              7     0     0       



[root@localhost home]# edquota user

[root@localhost home]# repquota -a

*** Report for user quotas on device /dev/sda2

Block grace time: 7days; Inode grace time: 7days

                        Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

----------------------------------------------------------------------

root      --      20       0       0              2     0     0       

user      --   39940  100000  120000            380   500   600       

user1     --      28       0       0              7     0     0       

user2     --      28       0       0              7     0     0       

user3     --      28       0       0              7     0     0       

usergroup --      28       0       0              7     0     0       



[root@localhost home]# edquota -p user -u user1

[root@localhost home]# repquota -a

*** Report for user quotas on device /dev/sda2

Block grace time: 7days; Inode grace time: 7days

                        Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

----------------------------------------------------------------------

root      --      20       0       0              2     0     0       

user      --   39940  100000  120000            380   500   600       

user1     --      28  100000  120000              7   500   600       

user2     --      28       0       0              7     0     0       

user3     --      28       0       0              7     0     0       

usergroup --      28       0       0              7     0     0       



[root@localhost home]# edquota -p user user2

[root@localhost home]# repquota -a

*** Report for user quotas on device /dev/sda2

Block grace time: 7days; Inode grace time: 7days

                        Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

----------------------------------------------------------------------

root      --      20       0       0              2     0     0       

user      --   39940  100000  120000            380   500   600       

user1     --      28  100000  120000              7   500   600       

user2     --      28  100000  120000              7   500   600       

user3     --      28       0       0              7     0     0       

usergroup --      28       0       0              7     0     0       



[root@localhost home]# edquota -p user user3 usergroup

[root@localhost home]# repquota -a

*** Report for user quotas on device /dev/sda2

Block grace time: 7days; Inode grace time: 7days

                        Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

----------------------------------------------------------------------

root      --      20       0       0              2     0     0       

user      --   39940  100000  120000            380   500   600       

user1     --      28  100000  120000              7   500   600       

user2     --      28  100000  120000              7   500   600       

user3     --      28  100000  120000              7   500   600       

usergroup --      28  100000  120000              7   500   600       







Network 구성


VBox -> 환경설정->네트워크

-> NAT(NatNetwork )

-> HOST only 설정

192.168.56.1

255.255.255.0

  DHCP 서버 설정

192.168.56.1

          255.255.255.0

192.168.56.100 

192.168.56.200


게스트 머신 모두 자동으로 설정

윈도우 명령 창에서 ipconfig 호스트 어뎁터 주소 확인

연결확인  ping 192.168.56.1

ping 192.168.56.105


#ifconfig enp0s3 enp0s8 -가상 ip 확인

#ifup enp0s8   /* nmtui firefox ping nslookup 네트워크 확인 

#systemctl restart network



telnet server 만들기

  원격 터미널 서비스 (서버에 원격 접속)


telnet-server install

#yum install telnet-server


#systemctl start telnet.socket


#firewall-config


#systemctl enable telnet.socket


/* IN telnet client */ 유저 추가 및  해당유저로 터미날 열고 

텔넷 연결 테스트  */


#yum install telnet


#telnet 192.168.111.100


//* WIN telnet client */rpm 


 windows telnet client 기능 키고 명령창에서 telnet 실행

#telnet 192.168.111.100


or


 putty download &install

putty 실행



 스마트폰에서 client 설치후 접속 실습




Open SSH server 암호화된 텔넷서비스 


ssh-server install


#rpm -qa openssh-server

#systemctl status sshd

/* #yum install  openssh-server

/* #systemctl start telnet.socket


#firewall-config



/* IN SSH client */


#ssh user@192.168.111.100 


 

/* WIN SSH client */


putty 실행


/* SmartPhone 앱으로 접속 */


앱 다운로드하여 실행


VNC (Virtual Network Computing) 서버 활용 - 원격 Xwindow 환경


--server 설정


#yum -y install tigervnc-server


#firewall-config   /*VNS 서비스 허용 */


#su - guest


$ vncserver /* VNS 서비스 시작 :비번설정*/


/* VNC Client 설치 */ - 터미날 하나 더 열고


#rpm -qa tigervnc

#su -c 'yum -y install tegervnc'


/*리눅스에서 VNC viewer 실행

 

#vncviewer 192.168.111.100:1



/*호스트 윈도우에서 실습

internet에서 클라이언트 검색 설치

VNC-Viewer-5.3.1-Windows-64bit or VNC-Viewer-5.3.1-Windows-32bit


실행- IP:번호



/* 서버에서 서비스 제거 


#vncserver -kill :1 




/* DNS 관련지식 URL -> /etc/host.conf-> /etc/hosts-> /etc/resolv.conf

에 기록돤 네임서버에 질의하여 IP 얻음

Name Server 구축 


#yum -y install bind bind-chroot



#vi /etc/named.conf  

  /* 11 행 listen .. any 로 수정

    12 행 listen .. none 로 수정

    17 행 allow .. any 로 수정


#systemctl restart named 

  #systemctl status named 

  #systemctl enable named 


/* 방화벽 설정 */

#firewall-config 


/* 테스트 서비스

#dig @192.168.111.100 www.google.com


/* local DNS server test */

방문기록 모두 삭제후 테스트 

 

  또는 게스트 머신 하나 더 실행시켜 테스트 한다.


#vi /etc/resolv.conf  /+ local server address로 수정 



#nslookup 

  >server

>www.naver.com

>www.google.com



메일 서버를 만들어 보자

1. 메일 서버를 만들기 위한 마스터 네임 서버 만들기

   #vi /etc/named.conf  수정 

zone "server.com" IN {

type master;

file "serverr.com.db";

allow-update {none;};

};

/var/named/server.com.db 생성


$TTL    3H

@       SOA     @      root.   ( 2 1D 1H 1W 1H )

           IN      NS      @

           N       A        192.168.56.105

           IN      MX      10      mail.server.com.


mail     IN      A         192.168.56.105


  #named-checkconf

  #named-checkzone server.com server.com.db

 

  # systemctl restart named

  


   

    #nslookup 마스터 네임서버 동작확인

  # vi /etc/resolv.conf

  # nslookup

  

  

2.메일서버 만들기 2


호스트네임 수정

mail.server.com       # vi /etc/hostname 변경

192.168.56.105 mail.server.com   # vi /etc/hosts 추가


         mail.server.com         # vi /etc/mail/local-host-names    

         HOSTNAME=mail.server.com       # vi /etc/sysconfig/network 

*** reboot ***


3. 메일 서버를 만들기 위한 패키지 설치


#yum -y install sendmail sendmail-cf dovecot


메일 config 화일 수정-생략

#vi /etc/mail/sendmail.cf

#vi /etc/mail/access 화일수정

   192.168.56 추가


# makemap hash /etc/mail/access < /etc/mail/access


access화일이 수정되면 반드시 실행시켜야 함  


# vi /etc/dovecot/dovecot.conf 

protocois ,listen baseaddr 주석 삭제



# vi /etc/dovecot/conf.d/10-ssl.conf 

ssl = yes   로 수정



#vi /etc/dovecot/conf.d/10-mail.conf


25행 주석제거 mail_allocation

119행   mail---group= mail

159행 주석제거  lock--

 

테스트 메일 유저 생성

kim


/메일 서비스 가동

#systemctl restart sendmail 

#systemctl enable sendmail 

#systemctl restart dovecot 

#systemctl enable dovecot l 


kim으로 로긴

evolution 실행 메일 송수신 테스트




NFS Server 구현



#yum -y install nfs-utils


# vi /etc/exports

/share 192.168.111.*(rw,sync) 공유 디렉토리 설정 (서버)



#mkdir /share

#chmod 707 /share


#cp /tmp/test*  /share


# systemctl restart nfs-server

# systemctl enable nfs-server


# systemctl stop firewalld



NFS Client 구현


#yum -y install nfs-utils


# vi /etc/exports

/share 192.56.*(rw,sync) 공유 디렉토리 설정 (서버)



#mkdir myshare


#mount -t nfs 192.168.56.105:/share /home/myshare


# cd /home/myshare

  -server share디렉토리 화일 확인



*** booting 시 자동 마운트 설정

#vi /etc/fstab 수정


window에서 제어판 에서 윈도우즈 기능 끄기/켜기에서 NFS용 크라이언트 키고 테스트

명령프롬프트 하에서 

 c:\>mount 192.168.56.105:/share *


드라이브 생성되면서 실행되면 화일탐색기로 확인



반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유