원격지에서 FTP이용 백업

2010.05.09 10:49

조인상 조회 수:8675

원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어

Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

+++++++++++++++++++++++++++++++++++++++++++++++++++++++


서버2에서 서버1의 데이터를 FTP로 가져와 백업하기

작업내용 : 서버2에서 매일(/etc/cron.daily/autoftp) 서버1로 ftp접속을 하여(/home/sspark/.autoftp.sh, /home/sspark/.ftpscript) 백업할 데이터들을 가져온후에 서버2에 날짜형식을 가진 디렉토리를 생성하여 저장하고, 서버1의 원본데이터는 삭제한다.

서버1에서는 매일매일 백업일 하기위해 /etc/cron.daily/NICE-daily-backup에서 /sbin/NICEBACKUP파일을 실행시켜 이 파일에 있는 내용대로 매일매일 백업이 되고 있다.





서버1에서 매일 백업되는 내용

다음과 같이 서버1의 /sbin/NICEBACKUP에는 백업해야할 내용에관한 명령어들이 들어있다.

[root@kebia_1 /root]# cat /sbin/NICEBACKUP
#!/bin/bash
#APACHE Server BACKUP
tar cvfpz /home/sspark/BACKUP/usr_local_apache.tar.gz /usr/local/apache
#Mysql DB Full BACKUP
tar cvfpz /home/sspark/BACKUP/usr_local_mysql.tar.gz /usr/local/mysql
#Filesystem BACKUP
tar cvfpz /home/sspark/BACKUP/etc.tar.gz /etc
tar cvfpz /home/sspark/BACKUP/var.tar.gz /var
tar cvfpz /home/sspark/BACKUP/home.tar.gz /home
#Mysql file BACKUP
/usr/local/mysql/bin/mysqldump -uroot -p11111 mysql > /home/sspark/BACKUP/mysql.sql
/usr/local/mysql/bin/mysqldump -uroot -p11111 kebia > /home/sspark/BACKUP/kebia.sql
chown -R sspark:sspark /home/sspark/BACKUP



아래와 같이 서버1에는 위의 백업을 매일 하기위해 /etc/cron.dailly에 NICE-daily-backup이란 파일이 존재한다.

[root@kebia_1 /root]# cat /etc/cron.daily/NICE-daily-backup
echo "NICE KOREA BACKUP"
echo `date`
/sbin/NICEBACKUP
echo "BACKUP is completed"
[root@kebia_1 /root]#



서버1에는 매일 아래 디렉토리에 다음과 같이 백업이 되고 있다.

[root@kebia_1 BACKUP]# pwd
/home/sspark/BACKUP
[root@kebia_1 BACKUP]# ll
-rw-r--r--    1 sspark  sspark    1514583 Apr  1 04:04 115.co.kr.tar.gz
-rw-r--r--    1 sspark  sspark      9263 Apr  1 04:05 chapter.co.kr.tar.gz
-rw-r--r--    1 sspark  sspark  12996153 Apr  1 04:05 e-gain.co.kr.tar.gz
-rw-r--r--    1 sspark  sspark    556780 Apr  1 04:04 etc.tar.gz
-rw-r--r--    1 sspark  sspark    2007684 Apr  1 04:04 imt-2000.co.kr.tar.gz
-rw-r--r--    1 sspark  sspark  11236021 Apr  1 04:04 nicekorea.co.kr.tar.gz
-rw-r--r--    1 sspark  sspark      32128 Apr  1 04:04 owner.co.kr.tar.gz
-rw-r--r--    1 sspark  sspark    2150591 Apr  1 04:04 picasso.co.kr.tar.gz
-rw-r--r--    1 sspark  sspark    3624831 Apr  1 04:04 sajik.com.tar.gz
-rw-r--r--    1 sspark  sspark  94379928 Apr  1 04:04 usr_local.tar.gz
-rw-r--r--    1 sspark  sspark    4471105 Apr  1 04:04 var.tar.gz
[root@kebia_1 BACKUP]#





서버2에는 서버1의 데이터를 매일 가져오기위해 /etc/cron.daily에서 매일실행하는 스크립트 autoftp가 아래와 같이 있다.

[root@kebia_2 /root]#
[root@kebia_2 /root]# cat /etc/cron.daily/autoftp
#!/bin/bash
/home/sspark/.autoftp.sh
[root@kebia_2 /root]#



서버2에 만들어져야할 파일2개

  autoftp.sh : ftp실행파일

  ftpscript : ftp명령어들



[root@kebia_2 sspark]# cat autoftp.sh
#!/bin/bash
ftp -n 211.220.193.181 < ./ftpscript
export backupdir=`date '+%y-%m-%d.%H-%M'`
mkdir /home/sspark/BACKUP/$backupdir
mv /home/sspark/tmp/* /home/sspark/BACKUP/$backupdir
[root@kebia_2 sspark]#



[root@kebia_2 sspark]# cat ftpscript
user sspark 11111
cd /home/sspark/BACKUP
lcd /home/sspark/tmp
bin
prompt
mget *.tar.gz
mdelete *.tar.gz
bye
[root@kebia_2 sspark]#



서버1에는 cron.daily에 /sbin/NICEBACKUP등으로 매일 또는 매주 또는 매월백업을 자동으로 되고 있어야한다.
서버1의 /home/sspark/BACKUP/200104010303 형식으로 디렉토리를 생성하게되어 저장된다.
그런후에는 서버1의 데이터를 삭제한다.



작업완료후에 서버2에는 서버1의 내용이 백업되어 있다.



[root@kebia_2 01-04-01.05-45]# pwd
/home/sspark/BACKUP/01-04-01.05-45
[root@kebia_2 01-04-01.05-45]# ll
-rw-r--r--    1 root    root      1514583 Apr  1 05:36 115.co.kr.tar.gz
-rw-r--r--    1 root    root        9263 Apr  1 05:36 chapter.co.kr.tar.gz
-rw-r--r--    1 root    root    12996153 Apr  1 05:37 e-gain.co.kr.tar.gz
-rw-r--r--    1 root    root      556780 Apr  1 05:37 etc.tar.gz
-rw-r--r--    1 root    root      2007684 Apr  1 05:37 imt-2000.co.kr.tar.gz
-rw-r--r--    1 root    root    11236021 Apr  1 05:38 nicekorea.co.kr.tar.gz
-rw-r--r--    1 root    root        32128 Apr  1 05:38 owner.co.kr.tar.gz
-rw-r--r--    1 root    root      2150591 Apr  1 05:38 picasso.co.kr.tar.gz
-rw-r--r--    1 root    root      3624831 Apr  1 05:38 sajik.com.tar.gz
-rw-r--r--    1 root    root    94379928 Apr  1 05:45 usr_local.tar.gz
-rw-r--r--    1 root    root      4471105 Apr  1 05:45 var.tar.gz
[root@kebia_2 01-04-01.05-45]#



서버2에서 ftp접속 및 작업이 끝난후 서버1의 내용(즉, 원본파일은 지워지게 된다.)

[root@kebia_1 BACKUP]# pwd
/home/sspark/BACKUP
[root@kebia_1 BACKUP]# ll
[root@kebia_1 BACKUP]#
번호 제목 글쓴이 날짜 조회 수
공지 [공지] 게시자료 열람자유. 불펌금지입니다. 조인상 2010.12.07 30735
104 CentOS 6.5 환경에서 Multipath 구성하기 - 작성중 secret ischo 2014.08.05 0
103 CentOS에 zabbix 1.8.2 install secret 조인상 2010.07.27 2
102 [Shell] 시작한지 1시간 이상 경과한 프로세스 kill 하기 ischo 2022.06.16 245
101 Rocky 9+nginx1.20+php8+MariaDB 10.5 환경에서 wordpress 설치하기 ischo 2024.01.10 322
100 파일시스템 양방향 동기화하기 - rsync, lsyncd file ischo 2024.01.03 385
99 LVM 타입 swap 영역 용량 축소하기 ischo 2023.11.28 390
98 vi 에디터에서 복사,붙여넣기 하면 # 마크가 자동으로 앞에 붙을때 ischo 2023.04.19 473
97 named 에서 DNS root 서버 리스트 갱신하기 ischo 2023.06.13 520
96 파일시스템 사용량 추이를 http 전송으로 DB에 누적하기 file ischo 2022.08.29 753
95 Multi Putty Manager file ischo 2020.10.08 898
94 apache log4j 취약점 제거조치 CVE-2021-44228 CVE-2021-45046 CVE-2021-41045 CVE-2021-4104 ischo 2021.12.23 1053
93 구버전 Linux에서 Rocky Linux 9.1 버전으로 ssh 접속시 "no hostkey alg" 표시후 접속불가 ischo 2023.04.19 1173
92 CentOS 7에 Apache2, php7.3, MariaDB 설치하기 ischo 2019.09.02 1930
91 CIDR Conversion Table ischo 2018.03.08 2967
90 리눅스에서 Windows Filesystem(NTFS) 마운트하기 ischo 2018.12.20 3470
89 (스크립트) 오라클 DB서버에서 매일 원격지 FTP로 export 파일 업로드 하기 ischo 2017.11.04 4338
88 SFTP로 자동 업로드/다운로드 스크립트 ischo 2018.04.04 7356
87 apache 404 에러에 OS 또는 apache버전을 표시하는 취약점 없애기 ischo 2016.10.25 7683
86 APM 설치하기 조인상 2010.05.12 8051
85 iptables로 NAT + Portforwarding 구성하기 조인상 2010.05.12 8634
서버에 요청 중입니다. 잠시만 기다려 주십시오...