운영체제 이야기/Linux(CentOS)

[CentOS7] rsync 적용

한희성 2019. 5. 6. 15:58
반응형
  1. 리눅스에서 스케줄 작업의 개요
    1. 스크립트를 작성한다 (일반적으로 .sh파일, 윈도우의 .bat개념)
    2. crontab에 등록한다.
  2. 스크립트 (백업로그와 실제 백업 수행)

    1. 백업폴더생성

    2. 스크립트작성

      1. 백업파일식별
        1. www_contents
        2. DB data
          1. 위치확인

            $ mysql -u root -p
            ---------------------
            mysql> show variables like 'datadir';
          2. 결과

            +---------------+-----------------+
            | Variable_name | Value           |
            +---------------+-----------------+
            | datadir       | /var/lib/mysql/ |
            +---------------+-----------------+
            1 row in set (0.00 sec)
            
            
            
      2. 스크립트작성

        $ vi ~/rsync_backup.sh
        -----------------------------------------
        
        #!/bin/sh
        
        PATH=/usr/bin:/bin
        LOG="rsync-backup-$(date +%Y-%m-%d).log"
        WWW_CONTENTS_LOG="rsync-www_contents-$(date +%Y-%m-%d).log"
        WWW_CONTENTS_ERR="rsync-www_contents-$(date +%Y-%m-%d).err"
        MYSQL_FOLDER_LOG="rsync-mysql_folder-$(date +%Y-%m-%d).log"
        MYSQL_FOLDER_ERR="rsync-mysql_folder-$(date +%Y-%m-%d).err"
        
        # rsync to backup location
        echo "Running rsync..." >> /u00/backup/nas/logs/current_month/$LOG
        rsync -avrz /u00/www_contents /u00/backup/nas/www_contents > /u00/backup/nas/logs/current_month/$WWW_CONTENTS_LOG 2> /u00/backup/nas/logs/current_month/$WWW_CONTENTS_ERR
        rsync -avrz /var/lib/mysql /u00/backup/nas/mysql_folder  > /u00/backup/nas/logs/current_month/$MYSQL_FOLDER_LOG 2> /u00/backup/nas/logs/current_month/$MYSQL_FOLDER_ERR
        
        # archive backup to bz2 format (with timestamp)
        #echo "Running tar..." >> ~/$LOG
        #tar -jcvf ~/www-backup-$(date +%Y-%m-%d).tar.bz2 ~/www-backup/ > ~/tar.log 2> ~/tar.err
        #rsync -av --delete --delete-excluded /var/www/ ~/www-backup/ > ~/rsync.log 2> ~/rsync.err
        #rsync -avrz /u00/www_contents ~/www-backup/ > ~/rsync.log 2> ~/rsync.err
    3. /var/lib/mysql/ 

  3. 스케줄러 등록

    $ crontab -e
    -----------------------------------
    00 03 * * * ~/rsync_backup.sh
  4. rsync log 매월 백업
    1. 스크립트

      $ vi ~/tar_logs_monthly.sh
      -------------------------------------------
      
      mkdir /u00/backup/nas/logs/history/$(date +%Y) -p
      tar -jcvf /u00/backup/nas/logs/history/$(date +%Y)/$(date +%Y-%m).tar.bz2 /u00/backup/nas/logs/current_month
      rm /u00/backup/nas/logs/current_month/*
    2. 스케줄러

      $ crontab -e
      --------------------------------
      00 02 1 * * ~/tar_logs_monthly.sh
  1. 설치

    $ yum install rsync
  2. 사용

    $ rsync -avrz /u00/www_contents /u00/backup/www_contents


반응형