Advertisement
Guest User

Untitled

a guest
Jun 16th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.13 KB | None | 0 0
  1. package com.loginserver.util;
  2.  
  3. import java.io.BufferedWriter;
  4. import java.io.ByteArrayInputStream;
  5. import java.io.ByteArrayOutputStream;
  6. import java.io.File;
  7. import java.io.FileInputStream;
  8. import java.io.FileWriter;
  9. import java.text.SimpleDateFormat;
  10. import java.util.Date;
  11. import java.util.logging.Logger;
  12. import java.util.zip.GZIPOutputStream;
  13.  
  14. import org.apache.commons.compress.archivers.ArchiveEntry;
  15. import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
  16. import org.apache.commons.compress.utils.IOUtils;
  17. import org.jibble.simpleftp.SimpleFTP;
  18.  
  19. public class CharacterBackup {
  20.    
  21.     private static final Logger logger = Logger.getLogger(CharacterBackup.class.getName());
  22.    
  23.     private static final SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy");
  24.     private static final SimpleDateFormat logformat = new SimpleDateFormat("MM-dd-yyyy hh:mm:ss");
  25.    
  26.     public static void main(String[] args) {
  27.         new CharacterBackup();
  28.     }
  29.     private static final String CHARDIR = "data/saves/";
  30.     private static final String FTP_HOST = "host";
  31.     private static final String FTP_USER = "user";
  32.     private static final String FTP_PASSWORD = "password";
  33.    
  34.     public CharacterBackup() {
  35.         backup();
  36.     }
  37.    
  38.     public void backup() {
  39.         try {
  40.             logger.info("Backing up...");
  41.             BufferedWriter writer = new BufferedWriter(new FileWriter("/var/log/rsps/backup.log", true));
  42.             writer.write("["+logformat.format(new Date())+"]: Backing up character files..");
  43.             writer.newLine();
  44.            
  45.             ByteArrayOutputStream o = new ByteArrayOutputStream();
  46.             GZIPOutputStream output = new GZIPOutputStream(o);
  47.             TarArchiveOutputStream out = new TarArchiveOutputStream(output);
  48.             File chardirfile = new File(CHARDIR);
  49.             for(File file : chardirfile.listFiles()) {
  50.                 ArchiveEntry entry = out.createArchiveEntry(file, file.getName());
  51.                 out.putArchiveEntry(entry);
  52.                 FileInputStream input = new FileInputStream(file);
  53.                 IOUtils.copy(input, out);
  54.                 input.close();
  55.                 out.closeArchiveEntry();
  56.             }
  57.             out.flush();
  58.             out.close();
  59.             output.flush();
  60.             output.close();
  61.             ByteArrayInputStream input = new ByteArrayInputStream(o.toByteArray());
  62.             SimpleFTP ftp = new SimpleFTP();
  63.             ftp.connect(FTP_HOST, 21, FTP_USER, FTP_PASSWORD);
  64.             if(ftp.stor(input, "backup_"+format.format(new Date())+".tar.gz")) {
  65.                 long size = o.toByteArray().length;
  66.                 String sizeext = " bytes";
  67.                 if(size >= 1024) {
  68.                     size = size/1024;
  69.                     sizeext = " kb";
  70.                 }
  71.                 if(size >= 1024) {
  72.                     size = size/1024;
  73.                     sizeext = " mb";
  74.                 }
  75.                 if(size >= 1024) {
  76.                     size = size/1024;
  77.                     sizeext = " gb";
  78.                 }
  79.                 String str = "Backup finished, backed up "+chardirfile.listFiles().length+" file(s) ("+size+sizeext+")";
  80.                 logger.info(str);
  81.                 writer.write("["+logformat.format(new Date())+"]: "+str);
  82.                 writer.newLine();
  83.             } else {
  84.                 logger.severe("Backup failed, could not upload file");
  85.                 writer.write("["+logformat.format(new Date())+"]: Backup failed, could not upload the file");
  86.                 writer.newLine();
  87.             }
  88.             writer.flush();
  89.             writer.close();
  90.             ftp.disconnect();
  91.         } catch(Exception e) {
  92.             e.printStackTrace();
  93.         }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement