ubuntu 18.04 시작 프로그램 등록

작업 가이드

실행 할 shell 만들기

  • 위치(예시) : /home/ubuntu/start.sh
  • 내용
    #!/bin/bash 
    touch /home/ubuntu/test 

shell 실행권한 주기

  • chmod +x /home/ubuntu/start.sh

service 파일만들기

  • sudo vi /lib/systemd/system/service_name.service

    ----------------------------------------내용 시작 
    [Unit] 
    Description=Star shell 
    
    [Service] 
    ExecStart=/home/ubuntu/start.sh 
    
    [Install] 
    WantedBy=multi-user.target 
    Alias=service_name.service 
    ----------------------------------------내용 끝 
    상세 설명 
    [Unit] 
        Description : 설명 
    [Service] 
        ExecStart : 실행 할 shell 
    [Install] 
        WantedBy : multi-user.target은 runlevel3 이 셋팅 되었을 때를 의미 
        Alias : 별칭을 지정해 사용할 수 있다. ex) httpd.service 의 Alias=apache.service  

service 파일에 실행권한 주기

  • sudo chmod 755 /lib/systemd/system/service_name.service

service 파일 시작 프로그램 등록하기

  • sudo systemctl enable service_name.service

[참고] service 직접 실행하기

  • sudo systemctl start service_name.service

linux grep 명령어 문자열 검색


명령어 : grep 

기본 사용법  : grep [옵션] "검색 할 문자열"  [파일명]



옵션 

-i : 대소문자를 구별 안함 


-w : 전체 단어와 일치하는 행만 출력 


-n : 일치하는 행의 번호와 행을 같이 출력 


-c : 일치하는 행의 수를 출력 


-l : 문자열이 포함된 파일명을 출력 


-v : 일치하지 않는 행만 출력 



응용방법


grep '^a' [파일명] 

a로 시작하는 행을 출력한다.


grep [a-c] [파일명]

a,b,c 로 시작하는 모든 단어를 찾아 출력한다.


grep '^[ab]' [파일명]

 a나 b로 시작되는 행을 출력한다.


grep [aA]bcd [파일명]

파일에서 abcd 또는 Abcd로 시작하는 행을 출력한다.


grep 'a$' [파일명]

a로 끝나는 행을 출력한다.


grep 'a.....b' [파일명]

a로 시작하고b로 끝나는 총 7자리 단어가 포함된 행을 출력한다.


grep 'a*' [파일명]

a로 시작하는 단어가 포함된 행을 출력한다.


grep 'abcd' d*

 d로 시작하는 모든 파일에서 apple 를 포함하는 모든 행을 출력한다.


grep '^a' [파일명] |  grep 'a$'

a로 시작하는 행을 찾은 결과에서 a로 끝나는 데이터를 찾는다.





이상 입니다.ㅎㅎ 


vsftp를 이용한 서버에 ftp 설치


작업 개요

- 서버에 파일 전송 프로토콜(File Transfer Protocol) FTP 설치하기 

작업 환경 

서비스 : EC2

AMI : Amazon Linux AMI 2018.03.0

- CentOS 호환가능

작업 내용 

오픈소스인 vsftp를 이용해 서버에 FTP 설치하기



작업 절차 


      1. vsftp가 설치 되었는지 확인한다. 

          - rpm -qa vsftpd*


      2. yum을 이용해 vsftp 페키지를 설치한다.

          - sudo yum install vsftpd -y


      3. vsftp 상태를 확인한다.

          - sudo service vsftpd status


      4. vsftp의 config 내용을 모두 지우고 아래 내용으로 입력한다.

          - sudo vi /etc/vsftpd/vsftpd.conf

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

    anonymous_enable=NO

    local_enable=YES

    write_enable=YES

    local_umask=022

    dirmessage_enable=YES

    xferlog_enable=YES

    connect_from_port_20=YES

    xferlog_file=/var/log/xferlog

    xferlog_std_format=YES

    chroot_local_user=YES

    listen=YES

    pam_service_name=vsftpd

    userlist_enable=YES

    tcp_wrappers=YES

    pasv_enable=NO


      5. vsftp 시작

          - sudo service vsftpd start


6. 해당 작업이 완료 되면 설치 작업이 끝난다. 그런 다음 방화벽에 21번 포트를 열어준다.




그럼 오늘도 행복한 하루 되세요.

haproxy open source 를 사용해 load balancer 구성 하기


작업 개요

- 해당 가이드는 haproxy 오픈소스 로드벨런서를 사용해 L4 L7스위치 대안으로 구성하는 방법을 다룬다.

작업 환경 

서비스 : EC2

AMI : Amazon Linux AMI 2018.03.0

작업 내용 

haproxy 오픈소스 로드벨런서를 EC2 안에 구성을 하고 로드벨런서에  DB연결을 구성한다.



작업 절차 


      1. ec2 생성  

          - test 인스턴스 img :  Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type


      2. haproxy 구성을 위해 필요 페키지 설치

          - sudo yum -y install haproxy mysql


      3. EC2에서 Aurora Serverless에 접근 가능한지 먼저 확인한다.

          - mysql -h'[end-point]' -u[mysql - user] -p

            ex) mysql -h'test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com' -uuser -p


      4. haproxy config 파일 수정 -내용을 아래 내용으로 모두 변경한다.

          - sudo vi /etc/haproxy/haproxy.cfg

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

        // 내용

        global


            log         127.0.0.1 local2


            chroot      /var/lib/haproxy

            maxconn     4000

            pidfile     /var/run/haproxy.pid

            user        haproxy

            group       haproxy

            daemon


            stats socket /var/lib/haproxy/stats



        defaults

            log                     global

            option                  tcplog

            option                  dontlognull

            option                  redispatch

            retries                 3

            timeout queue           1m

            timeout connect         10s

            timeout client          1m

            timeout server          1m

            timeout check           10s

            maxconn                 3000


        listen mysql-cluster 0.0.0.0:3306

              mode tcp

              balance roundrobin

              option tcpka

              #server sdm-db1 [aurora serverless end-point]:3306 check

              server sdm-db1 test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com:3306 check

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

****listen mysql-cluster 0.0.0.0:3306 에서 입력한 포트를 EC2 보안 그룹에서 외부에서 접속 가능하도록 열어준다.

 만약 여러 RDS를 대상으로 해당 작업을 해야하는 경우 포트만 다르게 여러 연결을 구성하면 된다.


        listen mysql-cluster 0.0.0.0:3306

              mode tcp

              balance roundrobin

              option tcpka

              #server sdm-db1 [aurora serverless end-point]:3306 check

              server sdm-db1 test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com:3306 check


        listen mysql-cluster 0.0.0.0:3305

              mode tcp

              balance roundrobin

              option tcpka

              #server sdm-db1 [aurora serverless end-point]:3306 check

              server sdm-db1 test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com:3306 check


      5. haproxy 재시작

          - sudo /etc/init.d/haproxy restart


이상 입니다.ㅎㅎ

그럼 오늘도 행복한 하루 되세요.

NAS (Network Attached Storage)  Server에 마운트 (Mount)


작업 환경 

OS : Centos 6 이상

작업 내용 

- 서버에 NAS를 마운트(mount)시켜 일반 스토리지(Storage) 처럼 사용하기 위한 작업 입니다.

또한 시스템 재부팅 시에도 자동으로 마운트 작업 되도록 설정합니다.



작업 절차 


- yum 을 이용해 nas 를 마운트 하기위해 필요한 nfs-utils 페키지 설치

yum install nfs-utils


- rpcbind 서비스 시작

/etc/rc.d/init.d/rpcbind start


- rpcbind를 시작 프로그램 등록해 재부팅시 실행 될 수 있게한다.

chkconfig rpcbind on


- 마운트(mount) 할 디렉토리를 생성한다.

mkdir [디렉토리]

ex) mkdir /data


- nas를 mount 한다.

mount [NAS mount 정보] [mount 포인트 디렉토리]

ex) mount -t nfs 10.101.0.0:/n130000_nas /data


- mount 결과를 확인한다.

df -h


- /etc/fstab파일을 연다.(/etc/fstab 서버의 파일 시스템 정보(스토리지)를 저장하는 파일이다.)

vi /etc/fstab


- 최하단에 아래 형식의 내용 추가

[파일시스템장치명] [마운트포인트] [파일시스템종류] [옵션] [dump관련설정] [파일점검옵션]

ex)

10.101.0.0:/n130000_nas              /data1                  nfs    defaults        1 2


*참고

[Device] : fdisk -l 명령어를 통해 확인할 수 있다.

[디렉토리] : mount 포인트 지정

[파일 시스템 형식] : 파일 시스템 형식

[파일 시스템 고유 옵션] : 파일 시스템 고유 옵션

[dump 작동 여부] : dump 명령어를 사용 할 때 [0]이면 실행 안함, [1] 실행한다는 의미를 가진다.

[무결성체크여부] : fsck 명령어로 무결성의 체크 여부를 지정 [0]일 경우 체크 안함,[1]이상의 정수를 쓰면 작은 순서로 체크한다.


**참고

- NAS 연결 끊기(언마운트 작업)

umount [mount 경로]

ex) umount /data



이상 입니다.ㅎㅎ

그럼 오늘도 행복한 하루 되세요.

'서버 셋팅 > storage' 카테고리의 다른 글

서버에 스토리지(storage) 연결(Mount)하기  (1) 2019.01.28

 일반 STORAGE mount

  • 디스크 파티션

    • 스토리지 상태 확인 및 추가 : fdisk 로 검사
        명령어 :  fdisk -l
      
        출력 내용
              Disk /dev/xvda: 53.7 GB, 53687091200 bytes
              255 heads, 63 sectors/track, 6527 cylinders
              Units = cylinders of 16065 * 512 = 8225280 bytes
              Sector size (logical/physical): 512 bytes / 512 bytes
              I/O size (minimum/optimal): 512 bytes / 512 bytes
              Disk identifier: 0x0004f47d
      
                  Device Boot      Start         End      Blocks   Id  System
              /dev/xvda1   *           1        6528    52427776   83  Linux
      
              Disk /dev/xvdb: 214.7 GB, 214748364800 bytes
              255 heads, 63 sectors/track, 26108 cylinders
              Units = cylinders of 16065 * 512 = 8225280 bytes
              Sector size (logical/physical): 512 bytes / 512 bytes
              I/O size (minimum/optimal): 512 bytes / 512 bytes
              Disk identifier: 0x00000000
      
        *설명 :  Disk identifier: 0x00000000 로 출력된 디스크를 찾으면 mount 할
                디스크의 경로를 찾을 수 있다.
                위 출력 내용에서는 /dev/xvdb 의 경로로 연결된 디스크가 아직
                mount 되지 않은 것을 알 수 있다.
      

    • 디스크 파티션
      명령어 : fdisk [mount할 디스크 경로]
          ex) fdisk /dev/xvdb
      
      출력 내용
            Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
            Building a new DOS disklabel with disk identifier 0x5fc5b993.
            Changes will remain in memory only, until you decide to write them.
            After that, of course, the previous content won't be recoverable.
      
            Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
      
            WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
                     switch off the mode (command 'c') and change display units to
                     sectors (command 'u').
      
            Command (m for help):
      
      입력 : n
      
      출력 내용
            Command action
               e   extended
               p   primary partition (1-4)
      
      입력 : p
      
      출력 내용      
            Partition number (1-4):
      
      입력 : 1
      
      출력 내용     
            First cylinder (1-26108, default 1):
      
      입력 : [Enter]
      
      출력 내용
            Last cylinder, +cylinders or +size{K,M,G} (1-26108, default 26108):
      
      입력 : [Enter]
      
      출력 내용
            Using default value 26108
      
            Command (m for help):
      
      입력 : w
      
      출력 내용
            The partition table has been altered!
      
            Calling ioctl() to re-read partition table.
            Syncing disks.   
      

  • 스토리지 포맷

    • 디스크 파티션 확인

        명령어 : fdisk -l
      
        출력 내용
              Disk /dev/xvda: 53.7 GB, 53687091200 bytes
              255 heads, 63 sectors/track, 6527 cylinders
              Units = cylinders of 16065 * 512 = 8225280 bytes
              Sector size (logical/physical): 512 bytes / 512 bytes
              I/O size (minimum/optimal): 512 bytes / 512 bytes
              Disk identifier: 0x0004f47d
      
                  Device Boot      Start         End      Blocks   Id  System
              /dev/xvda1   *           1        6528    52427776   83  Linux
      
              Disk /dev/xvdb: 214.7 GB, 214748364800 bytes
              255 heads, 63 sectors/track, 26108 cylinders
              Units = cylinders of 16065 * 512 = 8225280 bytes
              Sector size (logical/physical): 512 bytes / 512 bytes
              I/O size (minimum/optimal): 512 bytes / 512 bytes
              Disk identifier: 0x5fc5b993
      
                  Device Boot      Start         End      Blocks   Id  System
              /dev/xvdb1               1       26108   209712478+  83  Linux
      

    • 포멧하기

        명령어 :  mkfs.[파일 시스템 형식] [디스크 경로]
            ex) mkfs.ext4 /dev/xvdb1
      
        참고 : OS별 명령어
              - CentOS 5.x: mkfs.ext3 [디스크 경로]
              - CentOS 7.x: mkfs.xfs [디스크 경로]
              - Ubuntu Server / Desktop: mkfs.ext4 [디스크 경로]
      
        출력 내용
              mke2fs 1.41.12 (17-May-2010)
              Filesystem label=
              OS type: Linux
              Block size=4096 (log=2)
              Fragment size=4096 (log=2)
              Stride=0 blocks, Stripe width=0 blocks
              13107200 inodes, 52428119 blocks
              2621405 blocks (5.00%) reserved for the super user
              First data block=0
              Maximum filesystem blocks=4294967296
              1600 block groups
              32768 blocks per group, 32768 fragments per group
              8192 inodes per group
              Superblock backups stored on blocks:
                      32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
                      4096000, 7962624, 11239424, 20480000, 23887872
      
              Writing inode tables: 1139/1600
              Writing inode tables: done
              Creating journal (32768 blocks): done
              Writing superblocks and filesystem accounting information:
              done
              This filesystem will be automatically checked every 23 mounts or
              180 days, whichever comes first.  Use tune2fs -c or -i to override.
      

  • 스토리지 마운트

    • 스토리지를 마운트할 디렉토리 생성

        명령어 : mkdir [디렉로리]
            ex) mkdir /data1
      

    • 스토리지를 마운트할 디렉토리 생성

        명령어 : mount [스토리지 경로] [마운트할 디렉토리 경로]
            ex) mount /dev/xvdb1 /data1
      

    • 결과 확인

        명령어 : df -h
      

    • /etc/fstab에 등록하여 서버 부팅 후에도 마운트 정보를 유지

        명령어 : vi /etc/fstab
      
        최하단에 아래 형식의 내용 추가
        ex)
        /dev/xvdb1              /data1                  ext4    defaults        1 2
      
        *참고
          [Device] : fdisk -l 명령어를 통해 확인할 수 있다.
          [디렉토리] : mount 포인트 지정
          [파일 시스템 형식] : 파일 시스템 형식
          [파일 시스템 고유 옵션] : 파일 시스템 고유 옵션
          [dump 작동 여부] : dump 명령어를 사용 할 때 [0]이면 실행 안함, [1] 실행한다는 의미를 가진다.
          [무결성체크여부] : fsck 명령어로 무결성의 체크 여부를 지정 [0]일 경우 체크 안함,[1]이상의 정수를 쓰면 작은 순서로 체크한다.


'서버 셋팅 > storage' 카테고리의 다른 글

NAS (Network Attached Storage) Server에 마운트 (Mount)  (0) 2019.02.05

AWS EC2에 Apache 2.4 설치



작업 환경 

서버 : AWS EC2 

OS : Amazon Linux AMI 이미지 사용.

작업 내용 

- EC2에 Apache 2.4 를 설치한다.



작업 절차


- 최신 버그 수정 및 보안 업데이트를 얻으려면 다음 명령을 사용하여 EC2 인스턴스의 소프트웨어를 업데이트 명령어

sudo yum update –y



- yum install 명령을 사용하여 Apache 웹 서버를 설치

sudo yum install -y httpd24



- 다음 명령을 사용하여 웹 서버를 시작

sudo service httpd start




그럼 오늘도 행복한 하루 되세요.



AWS EC2에 java 1.7 openjdk 버전 1.8 업그레이드 또는 신규 설치 


작업 환경 

서버 : AWS EC2 

OS : Amazon Linux AMI 이미지 사용.

작업 내용 

- EC2에 기본 설치된 1.7 버전의 java를 업그레이드하거나, 새로 java를 설치하는 작업이다.



작업 절차 


- 설치된 Java 버전 확인한다. 일반적으로 1.7 버전이 설치 되어 있다. 설치 되어 있지 않아도 상관 없다.

java -version



- 설치 할 수 있는 Java 리스트를 확인 한다.

sudo yum list java*jdk-devel



- Java 1.8 설치하는 명령어를 입력한다.

sudo yum install -y java-1.8.0-openjdk-devel.x86_64



- 현재 1.7과 1.8 버전이 모두 설치 되어 있으므로, 아래 명령어로 활성화 할 Java 버전 선택한다.

sudo /usr/sbin/alternatives --config java



- 아래 그림에서 처럼 활성화 할 Selection 번호를 입력한다.


Java1.8을 활성화 할 것이므로 2를 입력하고 Enter를 누른다.



- 활성화 된 Java 버전을 확인한다.

java -version



- 참고사항- 아래 명령어를 입력하면 기존에 설치된 Java1.7 버전이 삭제된다.(선택사항)

sudo yum remove java-1.7.0-openjd




그럼 오늘도 행복한 하루 되세요.

+ Recent posts