# 작업 내용
 - 서버상에 생성한 일일 백업및 시스템로그 파일을, JAVA 프로세스를 이용하여 사용자의 로컬 PC에 다운로드 합니다.

# 필요 작업
1) 서버에 일일 백업및 시스템 로그 파일을 생성하는 스크립트를 작성하여 crontab 로 일정시간에 실행되도록 등록 합니다.

2) 서버상의 존재하는 백업 파일및 시스템 로그를 FTP로 접속하여 지정된 로컬 PC에 다운로드 합니다.
    # 서버에서 FTP 프로세스가 실행되고 있어야 합니다.


# 작업 내용
1) 일일 백업 스크립트 - 적용 OS : Linux

- 파일명 : daily_backup.sh
[backup@localhost ~]$ cat daily_backup.sh
TODAY=`date +%Y%m%d`
OLDDATE=`date --date '5 days ago' +%Y%m%d`

echo "$TODAY daily report" >> /home/backup/logs/$TODAY.log
echo "$OLDDATE old date" >> /home/backup/logs/$TODAY.log

DELETE_OLD_FILE="/home/backup/$OLDDATE.tar"
DELETE_OLD_LOG="/home/backup/logs/$OLDDATE.log"

echo "Date Backup Start~!" >> /home/backup/logs/$TODAY.log
tar -cvf - /home/free/webapps/WebContent/WEB-INF/ >  /home/data_backup/$TODAY.tar
echo "Date Backup End~!" >> /home/backup/logs/$TODAY.log

echo "" >> /home/data_backup/logs/$TODAY.log
echo "Old Data Delete Start~!" >> /home/backup/logs/$TODAY.log
rm $DELETE_OLD_FILE
rm $DELETE_OLD_LOG
echo "Old Data Delete End~!" >> /home/backup/logs/$TODAY.log

- 파일명 : daily_system_log.sh

[backup@localhost ~]$ cat daily_system_log.sh
#!/bin/sh
TODAY=`date '+%Y-%m-%d'`
OLDDATE=`date --date '30 days ago' +%Y-%m-%d`

# 현재 날자의 이름을 가진 txt 파일을 생성합니다.
echo "$TODAY daily report" >> /home/backup/report/report_$TODAY.txt
echo "$OLDDATE old date" >> /home/backup/report/report_$TODAY.txt

# 현재 날자로부터 30일 전의 파일을 삭제합니다.
DELETE_OLD_TXT="/home/backup/report/report_$OLDDATE.txt"
rm $DELETE_OLD_TXT

# NETWORK STATUS
# 생성된 파일에 용량확인 로그를 저장합니다.
echo " " >> /home/backup/report/report_$TODAY.txt
df -h >> /home/backup/report/report_$TODAY.txt
echo " " >> /home/backup/report/report_$TODAY.txt


- 파일명 : /etc/crontab
[backup@localhost ~]$ cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

#  매일 새벽 1시에 backup 계정으로  daily_backup.sh를 실행
01 1 * * * backup /home/backup/daily_backup.sh

#  매일 새벽 1시에 backup 계정으로  daily_system_log.sh를 실행
01 1 * * * backup /home/backup/daily_system_log.sh


2) FTPClient 를 이용하여 파일 다운로드
 - Commons Net 라이브러리를 다운로드
 경로 : http://jakarta.apache.org/site/downloads/downloads_oro.cgi

Commons Net 라이브러리 사용법 펌글 :
http://develop.sunshiny.co.kr/266?category=8


 - 설정파일 정의 : Config.properties
############################################################################
#    FTP 서버및 로컬 환경 설정
#    2009.08.06 최초작성 - sunshiny
############################################################################

# 서버 URL, IP
server.ip = 192.168.1.123

# FTP 서버 접속 계정 정보
server.user = backup
server.passwd = 1234

# 서버상의 파일이 있는 위치
server.path = /

# 다운 파일 저장위치
local.path = D:/02.TEMP/

# 로그 파일 저장 위치
log.path = D:/02.TEMP/log/

# 원격 서버에서 백업할 파일명은 기본 "yyyyMMdd" 형식을 지켜야 하며,
# 확장자는 변경하여 사용 가능.
# 다운로드시 파일명 변경. 저장 예) day_20090806.tar
download.file.name = day_

# 다운로드할 파일 확장자 설정(원격 서버와 동일)
download.file.type = tar

# 다운로드한 파일삭제 주기 (입력형식 1~100 숫자)
# 공백일경우 삭제 없음.
download.file.delete = 6

############ 서버 용량확인 텍스트 파일 설정 ###############

# 서버상의 로그 파일이 있는 위치
system.log.path = report/

# 저장(다운로드) 위치
local.log.path = D:/02.TEMP/daily_log/

# 삭제 주기 (입력형식 1~100 숫자)
# 공백일경우 삭제 없음.
local.log.delete = 30


# 로컬 PC 에 다운로드 예약을 실행시에
cmd 파일또는 bat 파일을 생성하여 아래와 같이 commons-net, Main 클래스 파일 위치를 설정 해줍니다.
그 후에 윈도우에 있는 예약설정을 이용하여 해당 cmd 또는 bat 파일을 선택 해줍니다.

 - 파일명 : start_backup.cmd
java -classpath "D:\temp\backup\lib\commons-net-2.0.jar;D:\temp\backup\bin" Main


# 이후 JAVA 파일은 소스를 참고.

 - 전체 소스 다운로드 -





09 1, 2009 10:17 09 1, 2009 10:17

Trackback URL : http://develop.sunshiny.co.kr/trackback/293

Leave a comment

Linux - 파일 백업 스크립트

Posted 08 7, 2009 10:13, Filed under: System/UNIX

# 백업 스크립트

[filedown@localhost data_backup]$ cat file_backup.sh
TODAY=`date +%Y%m%d`
OLDDATE=`date --date '1 days ago' +%Y%m%d`

echo "$TODAY daily report" >> /home/data_backup/logs/$TODAY.log
echo "$OLDDATE old date" >> /home/data_backup/logs/$TODAY.log

DELETE_OLD_FILE="/home/data_backup/$OLDDATE.tar"
DELETE_OLD_LOG="/home/data_backup/logs/$OLDDATE.log"

echo "Date Backup Start~!" >> /home/data_backup/logs/$TODAY.log
tar -cvf - /home/free/webapps/WebContent/WEB-INF/ >  /home/data_backup/$TODAY.tar
echo "Date Backup End~!" >> /home/data_backup/logs/$TODAY.log

echo "" >> /home/data_backup/logs/$TODAY.log
echo "Old Data Delete Start~!" >> /home/data_backup/logs/$TODAY.log
rm $DELETE_OLD_FILE
rm $DELETE_OLD_LOG
echo "Old Data Delete End~!" >> /home/data_backup/logs/$TODAY.log

# crontab 설정 내용

[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

# 추가 매일 오전 9시 report.sh 스크립트 파일을 실행하다...
01 9 * * * root /root/report.sh

01 1 * * * filedown /home/data_backup/file_backup.sh

08 7, 2009 10:13 08 7, 2009 10:13

Trackback URL : http://develop.sunshiny.co.kr/trackback/269

Leave a comment


Recent Posts

  1. Linux - Telnet 서비스 비활성및 실행
  2. NT - 서버 원격데스크탑 연결
  3. NT - http와 https간에 세션 공유가...
  4. Unix - 대량 파일 이동, 삭제시 Argu...
  5. Oracle - SYS_CONTEXT 함수를 이용하...

Recent Comments

  1. 네. 고맙습니다^^ 행복한 한해 보... sunshiny 01 16,
  2. sunshiny님. 안녕하세요... 올려 주... yihans 01 16,
  3. 답글 주셔서 고맙습니다^^ 소스 복... sunshiny 01 11,
  4. 관리자만 볼 수 있는 댓글입니다. 비밀방문자 01 11,
  5. 넵 답변감사합니다^^ 좋은 하루 되... 노로링

Recent Trackbacks

  1. 윈도우 cmd 명령어 팁 월풍도원(月風道院) - Delight on th... %M
  2. 파일 압축 Like RadioHead %M
  3. Mysql - mysql 설치후 Character set... 멀고 가까움이 다르기 때문 %M

Calendar

«   02 2012   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. Oracle All Documentation
  4. 엑셈
  5. 오라클 클럽
  6. 네이버개발자센터
  7. API - Java
  8. API - Spring
  9. Java Community
  10. Reference - Spring
  11. 스프링사용자
  12. 자바지기
  13. Ready System
  14. Solaris Freeware
  15. Linux-Site
  16. RedHat Korea
  17. 윈디하나의 솔라나라

Site Stats

TOTAL 217714 HIT
TODAY 16 HIT
YESTERDAY 115 HIT