Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.loginserver.util;
- import java.io.BufferedWriter;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileWriter;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.logging.Logger;
- import java.util.zip.GZIPOutputStream;
- import org.apache.commons.compress.archivers.ArchiveEntry;
- import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
- import org.apache.commons.compress.utils.IOUtils;
- import org.jibble.simpleftp.SimpleFTP;
- public class CharacterBackup {
- private static final Logger logger = Logger.getLogger(CharacterBackup.class.getName());
- private static final SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy");
- private static final SimpleDateFormat logformat = new SimpleDateFormat("MM-dd-yyyy hh:mm:ss");
- public static void main(String[] args) {
- new CharacterBackup();
- }
- private static final String CHARDIR = "data/saves/";
- private static final String FTP_HOST = "host";
- private static final String FTP_USER = "user";
- private static final String FTP_PASSWORD = "password";
- public CharacterBackup() {
- backup();
- }
- public void backup() {
- try {
- logger.info("Backing up...");
- BufferedWriter writer = new BufferedWriter(new FileWriter("/var/log/rsps/backup.log", true));
- writer.write("["+logformat.format(new Date())+"]: Backing up character files..");
- writer.newLine();
- ByteArrayOutputStream o = new ByteArrayOutputStream();
- GZIPOutputStream output = new GZIPOutputStream(o);
- TarArchiveOutputStream out = new TarArchiveOutputStream(output);
- File chardirfile = new File(CHARDIR);
- for(File file : chardirfile.listFiles()) {
- ArchiveEntry entry = out.createArchiveEntry(file, file.getName());
- out.putArchiveEntry(entry);
- FileInputStream input = new FileInputStream(file);
- IOUtils.copy(input, out);
- input.close();
- out.closeArchiveEntry();
- }
- out.flush();
- out.close();
- output.flush();
- output.close();
- ByteArrayInputStream input = new ByteArrayInputStream(o.toByteArray());
- SimpleFTP ftp = new SimpleFTP();
- ftp.connect(FTP_HOST, 21, FTP_USER, FTP_PASSWORD);
- if(ftp.stor(input, "backup_"+format.format(new Date())+".tar.gz")) {
- long size = o.toByteArray().length;
- String sizeext = " bytes";
- if(size >= 1024) {
- size = size/1024;
- sizeext = " kb";
- }
- if(size >= 1024) {
- size = size/1024;
- sizeext = " mb";
- }
- if(size >= 1024) {
- size = size/1024;
- sizeext = " gb";
- }
- String str = "Backup finished, backed up "+chardirfile.listFiles().length+" file(s) ("+size+sizeext+")";
- logger.info(str);
- writer.write("["+logformat.format(new Date())+"]: "+str);
- writer.newLine();
- } else {
- logger.severe("Backup failed, could not upload file");
- writer.write("["+logformat.format(new Date())+"]: Backup failed, could not upload the file");
- writer.newLine();
- }
- writer.flush();
- writer.close();
- ftp.disconnect();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement