본문 바로가기
데이터베이스/mysql

shell을 이용해 자동적으로 mysqldump 백업하기

by 디찌s 2020. 11. 9.
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

댓글