ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • shell을 이용해 자동적으로 mysqldump 백업하기
    데이터베이스/mysql 2020. 11. 9. 14:00
    728x90
    반응형

     

     

    두대에 서버(ip 106,23)중 하나는 db서버를 이용하고 나머지 한서버는 백업용 서버로 이용하기 위해

     

    shell을 생성하여 자동적으로 백업할것이다.

     

    프로세스를 확인하자면 106서버에 있는 DB를 dump하여 데이터를 ftp를 이용하여 23번 /root/backup 폴더에 저장할것이다.

     

     

    mysqldump shell

    일단 dump 를 생성후 해당파일을 압축하는 shell script부터 생성하자.

     

     

    한번 코드를 보자면

     

    DATE 는 현재 날짜를 저장하여 sql 이름으로 사용하고

     

    mysqldump -u(ID) -p(passwd) 데이터베이스 > 저장할.sql

     

    dump 한 sql을 tar로 저장하는 shell 이다 이대로 실행하면

     

    이런 에러 메세지를 보게될것이다.  이 에러는 mysql 5.6 이상부터 발생되는 보안 이슈이며 이를 해결하기 위해선

    mysql_config_editor를 이용해야한다.

     

    mysql_config_editor를 이용해서 login 정보를 저장해준다 login-path는 dbbackup 이름이며 그안에는 로그인 정보들

    이 담겨있는것을 확인할수있다. 이제 다시 shell을 수정해보자.

     

    비밀번호를 입력하는곳에 --login-path 파라미터에 dbbackup 방금만든 config를 넣어준다. 그러고 다시 실행

     

    ㅠㅠㅠㅠ 또 권한 오류다 이번에는  PROCESS 권한이없다고한다. 

     

    구글링하다 보니 대안이있어서 그대로 한번해보겠다.

     

     

     

     

    일단 내 mysql 계정에 권한은 위와같다 이 권한에 process 권한을 줘야한다.

     

    적용후 shell을 다시 실행해보자

     

    정상적으로 잘 작동하는것을 볼수있다.

     

    이제는 전송 받을 ip23 인 vsftp를 설치하여 보안을 위해 기본 ftp포트 21번을 변경하도록하자

     

    sudo apt-get install vsftpd 

     

    install 하고

     

    vim /etc/vsftpd.conf 을 열어서

     

    listen_port = 자신이 원하는포트 pasv_mode를 사용하기위해  pasv_enable =YES로 설정하고

     

    최소 21000~21500 까지 포트를 열어주자

     

    명령어인 ufw allow 21000:21500 실행

     

    그리고 chrood_local_user=NO 를 사용하여 접속한 유저가 상위폴더로 접근가능하도록 설정!

     

    저장한뒤 vsftpd 를 재실행해주자

     

    이제! 압축된 파일을 ftp를 이용하여 ip23 서버에 전송하는 shell을 만들도록 하자!

     

    전송이 잘되는지 확인하기 위해 ftp_log.txt를 만들어주고

    user 와 pass word를 입력한뒤 put을 이용해서 파일을 전송해주는 shell을 만든다.

    그리고 쉘을 실행하면

     

    23ip에 잘 보내진것을 확인할수있다.

    728x90
    반응형

    '데이터베이스 > mysql' 카테고리의 다른 글

    mysql fk 추가 및 기준잡기  (0) 2021.05.07
Designed by Tistory.