Copia seguridad en Java

 Seguidamente se muestra como hacer copia de carpetas de un origen a destino en Java. Sino existe la carpeta la crea. Son dos ficheros: Backup.java y FileUtils.java

Backup.java
=====================================================
package backup;

import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Backup {
 public static void main(String[] args) {

        try {
            DateFormat dateFormat = new SimpleDateFormat(«yyyy-MM-dd»);
            Calendar cal = Calendar.getInstance();
            String dia = dateFormat.format(cal.getTime());

            File srcDir;
            File destDir;
            FileUtils fileUtils;
            fileUtils = new FileUtils();
            int contador = 1;

            System.out.println(«Fecha: » + dia);

            srcDir = new File(«C:\Users\Paco\Documents\Fuente»);
            destDir = new File(«C:\Users\Paco\Documents\backup\» + dia + «\Fuente»);
            fileUtils.copyDirectory(srcDir, destDir);
            System.out.println(contador + «. Copiado » + srcDir + » » + » en » + destDir);
           
        } catch (IOException ex) {
            Logger.getLogger(Backup.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

}
FileUtils.java
=====================================================
package backup;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

class FileUtils {

    public void copy(File sourceLocation, File targetLocation) throws IOException {
        if (sourceLocation.isDirectory()) {
            copyDirectory(sourceLocation, targetLocation);
        } else {
            copyFile(sourceLocation, targetLocation);
        }
    }

    void copyDirectory(File source, File target) throws IOException {
        File destino;
        File origen;

        if (!target.exists()) {
            //target.mkdir();
            target.mkdirs(); // Crea carpetas sino existe
        }

        for (String f : source.list()) {
            origen = new File(source, f);
            destino = new File(target, f);
            if ((origen.lastModified() > destino.lastModified()) || (origen.length() > destino.length())) {
                copy(origen, destino);
            }
        }
    }

    private void copyFile(File source, File target) throws IOException {
        try (
                InputStream in = new FileInputStream(source);
                OutputStream out = new FileOutputStream(target)) {
            byte[] buf = new byte[1024];
            int length;
            while ((length = in.read(buf)) > 0) {
                out.write(buf, 0, length);
            }
        }
    }
}

Fuente:
https://stackoverflow.com/questions/5368724/how-to-copy-a-folder-and-all-its-subfolders-and-files-into-another-folder

IMAGEN AMPLIADA IMPRESA EN VARIAS HOJAS

Segidamente mostrarmos el proceso de crear un pdf y obtener una ampliación para impresión en varias hojas con windows.

1. Con Oracle Developer Data Modeler podemos generar diagramas Entidad Relación super grandes y obtenter su pdf.
2. Con Impress de LibreOffice abrimos el pdf y aññadirmos comentarios de texto y cajas con textos explicativos. Generemos un pdf.
3. Con Pdf-Xchange Editor abrimos el pdf y exportamos a una imagen png. https://www.tracker-software.com/product/downloads
4. Con Posterazor ampliamos la imagen y la troceamos en hojas. http://posterazor.sourceforge.net/

Montaje de particiones en linux: blkid

Es posible montar las particiones en linux sabiendo el UUID de la partición para ello usaremos blkid.
Ejemplo:

sudo blkid
/dev/sda1: UUID=»d8450a85-dc59-4242-8683-39808185ce3d» TYPE=»ext4″ PARTUUID=»c4284c14-62b0-4432-bf07-3db26d9efeee»
/dev/sdb1: UUID=»47823681-383e-42ab-8ae5-fe24e3151abb» TYPE=»ext4″ PARTUUID=»000136ae-01″
/dev/sdb2: UUID=»288e05ad-4746-4cbc-bb3a-b03b4185dd5b» TYPE=»ext4″ PARTUUID=»000136ae-02″

Ahora editaremos el fichero de particiones con:
sudo gedit /etc/fstab

Ejemplo:
# / was on /dev/sda1 during installation
UUID=d8450a85-dc59-4242-8683-39808185ce3d /               ext4    errors=remount-ro 0       1
/dev/disk/by-uuid/47823681-383e-42ab-8ae5-fe24e3151abb /media/datos1 auto nosuid,nodev,nofail,x-gvfs-show 0 0
/dev/disk/by-uuid/288e05ad-4746-4cbc-bb3a-b03b4185dd5b /media/datos2 auto nosuid,nodev,nofail,x-gvfs-show 0 0
/dev/disk/by-id/usb-Generic_Flash_Disk_5E2A69E1-0:0 /mnt/usb-Generic_Flash_Disk_5E2A69E1-0:0 auto nosuid,nodev,nofail,x-gvfs-show 0 0

Script en bash para unir varios ficheros pdf en uno solo

El siguiente script en bash une los ficheros: 0.pdf 1.pdf 2.pdf … 15.pdf en otro llamado todo.pdf

gedit pdfjoin.sh
====================inicio fichero
s=»»

for i in $(ls *.pdf);do
   s=${s}» «${i}
done

echo «pdftk ${s} cat output todo.pdf»
pdftk ${s} cat output todo.pdf
==================fin fichero

Se lanzaria desde la terminal con:
sh pdfjoin.sh

Yamaha a700 con spotify en la play station 4 como reproductor en red.

Si dispones de la Play Station 4 (PS4) puedes usar Spotify gratis, con su  total funcionalidad y pasar las canciones con el móvil o el pc.
Spotify no permite avanzar canciones en el móvil, ni el smartv en modo gratuito. Sin embargo el la PS4 si se puede.El inconveniente en la PS4 es la publicidad que te ponen cada 10 canciones.
Si conectas la ps4 a la tv, y la tv al amplificador yamaha a700  por cable óptico, ya tienes el reproductor en red controlado por el móvil y la música de spotify.

Amplificador Yamaha a-700
Cable óptico para conectar la TV y el Amplificador Yamaha a-700