-
shell을 이용해 자동적으로 mysqldump 백업하기데이터베이스/mysql 2020. 11. 9. 14:00728x90반응형
두대에 서버(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