리눅스맨

AWS AUTO BACKUP

AWS AUTO BACKUP SYSTEM

아마존 AWS EC2 서버를 다수 운영하다보면 일괄적으로 백업을 해야하는 경우가 존재합니다.

아마존 AWS 에서는 스냅샷을 이용하여 원하는 시점을 백업하고 이미지 AMI(아마존 이미지)로 보관 할 수 있습니다.

이 방법을 통해서 기존서버에서 AWS 서버로 1분도 안되어서 서버 이전을 할 수 있게되었습니다.

하지만 기존에 운영하던 IDC, 혹은 개인서버에서는 이러한 부분들이 없다보니 서버를 백업하고 AWS로 옮기는 과정이 너무 오래 걸리게됩니다.

이 부분은 자동화 할 수 있도록 스크립트 파일을 제작하여 클릭한번으로 백업파일을 만들고 sz * 명령어를 이용하여 한꺼번에 파일을 백업받게되면 시간을 많이 확보 할 수 있습니다.

cd /root/BACKUP_SERVER

sz *

 

 

string BACKUP_FORDER_NAME = "BACKUP_SERVER";

client.RunCommand(string.Format("/usr/bin/rm -rf /root/{0}", BACKUP_FORDER_NAME));
client.RunCommand(string.Format("/usr/bin/mkdir /root/{0}", BACKUP_FORDER_NAME));
client.RunCommand(string.Format("/usr/bin/cd /root/{0}", BACKUP_FORDER_NAME));


//ssl certification file
if (e.Argument.ToString().Contains("https"))
{
client.RunCommand(string.Format("/usr/bin/tar cvf /root/{0}/ssl_{1}.tar /etc/ssl/certs/{1}", BACKUP_FORDER_NAME, textBox_사이트생성_도메인.Text));

}

//httpd vhost conf
client.RunCommand(string.Format("/usr/bin/cp -rfv /etc/httpd/conf.d/httpd-vhosts-{1}.conf /root/{0}", BACKUP_FORDER_NAME, textBox_사이트생성_도메인.Text));

//httpd web files
client.RunCommand(string.Format("/bin/mysqldump -uMariadbUser -pMariadbPassword {1} > /root/{0}/sql_{2}.sql", BACKUP_FORDER_NAME, textBox_사이트생성_도메인.Text.Replace(".", ""), textBox_사이트생성_도메인.Text));

//mariadb database backup
client.RunCommand(string.Format("/usr/bin/tar cvf /root/{0}/{1}.tar /var/www/html/{2}", BACKUP_FORDER_NAME, textBox_사이트생성_도메인.Text, textBox_사이트생성_폴더명.Text));


MessageBox.Show(string.Format("서버백업완료\r\n\r\n/root/{0} 폴더의 파일을 PC로 복사하면됩니다.", BACKUP_FORDER_NAME));

 

서버백업 클릭 한번과 SSH 접속 후 sz * 명령어 한번으로 서버 전체를 다운받아 AWS로 쉽게 옮길수 있습니다.

 


게시됨

카테고리

, ,

작성자

태그: