CORE
HOME > JAVA > J2SE > CORE
2018.06.06 / 10:51

Java - Commons NetÀÇ FTPClient »ç¿ëÇÏ¿© FTP Á¢¼Ó¹× ÆÄÀÏ ÄÁÆ®·Ñ ¿Ï¼º ¼Ò½º

ÀλçÀ̵åÀÚ¹Ù
Ãßõ ¼ö 187

# ÀÛ¾÷ ³»¿ë
 - ¼­¹ö»ó¿¡ »ý¼ºÇÑ ÀÏÀÏ ¹é¾÷¹× ½Ã½ºÅÛ·Î±× ÆÄÀÏÀ», 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 ÆÄÀÏÀº ¼Ò½º¸¦ Âü°í.

 - Àüü ¼Ò½º ´Ù¿î·Îµå -