Visual Studio Code para Haskell – (Arch Linux)

Hoy muestro uno de los mejores editores para programar en haskell que he probado.

Es un viejo conocido que recientemente libero Microsorft. Visual Studio Code.

Como soy usuario de Antergos Linux,  os mostrare la instalación de este editor y de su extensión para haskell, en distribuciones basadas en Arch Linux.

Os dejo un vídeo para que os animéis a instalarlo, es muy sencillo y rápido. para los que uséis otro lenguaje de programación como Pythom el procedimiento es el mismo.

Para los que tengáis otras distros o S.O. os aconsejo utilizar Visual Studio Code para haskell.

 

Enlace de VSC.

Visual Studio Code

Enlace de Antergos Linux.

Antergos Linux

Anuncios

Backup automatizado para Arch Linux. ClamAv, rsync y cronie

Aprenderemos a automatizar nuestros backups en Arc Linux y derivados, usando tres aplicaciones de software libre.

  • ClamAV antivirus de libre disposición para limpiar nuestros dispositivo de huéspedes indeseables.
  • rsync potente herramienta para la transferencia y sincronización de archivos. Admite sincronización mediante ssh para transferencias a host remoto.
  • cronie (derivado de cron en ArchLinux) que permite programar o automatizar tareas.

A día de hoy, una de las mejores herramientas de seguridad, a mi entender, sigue siendo el BackUp. La copia de seguridad nos permitirá viajar atrás en el tiempo hasta ese momento en que todo era maravilloso. No hacerlo es asumir muchos e indeseables riesgos.

En mi caso y para que os sirva de ejemplo, haremos una copia de seguridad de mis carpeta Programación, donde guardo archivos que no quiero perder, en el primer vídeo también cifraremos el dispositivo usb usando la aplicación que viene por defecto en gnome; gnome-disks, ( en KDE hay una similar, pero si queréis usar la misma os pongo abajo como instalarla)

Que haremos realmente
  1. Pasaré un antivirus sobre la carpeta origen y destino.
  2. Guardare los logs del antivirus en archivos de texto.
  3. Usare solo Software libre. (cronie + antivirus ClamAV  + rsync ).
  4. En caso de  que sean datos sensibles, podríamos cifrar el dispositivo donde alojemos los backups.
  5. Usare un USB externo  en el que tendré 3 backups de la misma carpeta (diario, semanal, mensual).
  6. Realizare script de automatización que se ejecutara creando las copias de seguridad (mediante cronie).
Resumen de aplicaciones a instalar (también se puede hacer desde el gestor de paquetes):
  • Primero actualizar pacman sudo pacman -Syu
  • ClamAv, Antivirus. sudo pacman -S clamav 
  • rsync  sudo pacman -S rsync
  • cronie, gestor de tareas. sudo pacman -S cronie
  • Para cifrar almacenamiento externo externo uso el que viene en gnome instalado. sudo pacman -S gnome-disks

CIfrado (opcional)

Si deseamos cifrar seria el primer paso, el cual es dependiente del resto y opcional. (Ver video)

ANTIVIRUS (I)

Instalacion:

Instalaremos ClamAv desde terminal previa  actualización de pacman

  • sudo pacman -Syu
  • sudo pacman -S clamav 

para actualizar la base de datos del antivirus si no lo automatizamos:

sudo freshclam

Automatización del las actualizaciones del Antivirus ClamAV

Para que se  actualice ell antivirus cada vez que iniciemos el sistema. Equivale a hacer sudo freshclamen en cada inicio.

  • sudo systemctl start clamav-freshclam.service
  • sudo systemctl enable clamav-freshclam.service
Sinraxis y comandos usados.
  •  clamscan -r ORIGEN -l /DESTINOLOG
  • -r es recursivo escanea también las subcarpetas.
  • -l crea un archivo de texto con los datos del análisis.

 

Backup (II)

Instalacion.

Hemos elegido rsync por su velocidad y estabilidad, ademas de estar disponible en multitud de distribuciones y S.O.

  • sudo pacman -S rsync
Sintaxis y comandos de rsync.

La sintaxis es: rsync [opciones] origen destino

Pongo los comandos más usuales solamente, para ampliar usar rsync –help o mirara la bibliografía.

  • -a modo archivo, este modo permite copiar archivos de forma recursiva aceptando enlaces simbólicos, permisos, propiedad del usuario y grupo, así como las fechas de acceso.
  • -v muestra información en pantalla sobre las acciones que se realizan.
  • -r recursivo, realiza la copia de archivos de forma recursiva dentro de los directorios, pero no copia los permiso, los datos de las fechas de accesos o modificación de los archivos.
  • -z comprime los datos antes de enviarlos, lo que puede hacer más rápidas las transferencias entre hosts remotos, para rutas locales no proporciona ninguna ventaja usar esta opción.
  • -P Muestra el progreso de las transferencias.
  • — delete borra archivos que no estén en el origen.

 

Scripts (III).

Yo lo guarde como como BackUpDiario.sh, BackUpSemanal.sh y BackUpMensual.sh

Luego le di permisos mediante.

chmod +x BackUpDiario.sh BackUpSemanal.sh BackUpMensual.sh

El script parece más grade, porque lo he comentado todo, para que lo veáis mas claro. Estas son las instrucciones que lo componen.

  • Pasamos antivirus al Origen y guardamos el log: clamscan -r /home/nukebull/Programacion/ -l /home/nukebull/Logs/backupDiario.txt
  • Sincronizamos Archivos: rsync -a –delete /home/nukebull/Programacion/ /run/media/nukebull/401D-1A0E/BackUpDiario/
  • Pasamos antivirus al Destino y guardamos el log:clamscan -r /run/media/nukebull/401D-1A0E/BackUpDiario/ -l /home/nukebull/Logs/backupDiarioBackUp.txt
  • se añaden también dos instrucciones echo para ordenar los log del antivirus.

 

BackUpDiario.sh

#!/bin/bash

#Vicente Parra
#www.nukebull.com

# Pasamos el antivirus a la carpeta origen y guardamos los datos (log y fecha) en un archivo de texto

#escribimos en archivo log la fecha para tenerlo ordenado
echo -e “n Fecha del Backup :n” >> /home/nukebull/Logs/backupDiario.txt
echo `date` >> /home/nukebull/Logs/backupDiario.txt

# ejecutamos antivirus
clamscan -r /home/nukebull/Programacion/ -l /home/nukebull/Logs/backupDiario.txt

# Sincronizamos rsync -a –delete carpeta_origen/ carpeta_destino/ -vP ver datos des ploceso y program -delete hace pocias identicas al borrar los archivos distintos en destino
#rsync -avP –delete /home/nukebull/Programacion/ /run/media/nukebull/401D-1A0E/BackUpDiario/

rsync -a –delete /home/nukebull/Programacion/ /run/media/nukebull/401D-1A0E/BackUpDiario/

# Pasamos el antivirus a la carpeta de destino y guardamos los datos (log y fecha) en un archivo de texto

#escribimos en archivo log la fecha para tenerlo ordenado
echo -e “n Fecha del Backup : n” >> /home/nukebull/Logs/backupDiarioBackUp.txt
echo `date` >> /home/nukebull/Logs/backupDiarioBackUp.txt

# ejecutamos antivirus
clamscan -r /run/media/nukebull/401D-1A0E/BackUpDiario/ -l /home/nukebull/Logs/backupDiarioBackUp.txt

 

BackUpSemanal.sh

#!/bin/bash

#Vicente Parra
#www.nukebull.com

# Pasamos el antivirus a la carpeta origen y guardamos los datos (log y fecha) en un archivo de texto

#escribimos en archivo log la fecha para tenerlo ordenado
echo -e “n Fecha del Backup :n” >> /home/nukebull/Logs/backupSemanal.txt
echo `date` >> /home/nukebull/Logs/backupSemanal.txt

# ejecutamos antivirus
clamscan -r /home/nukebull/Programacion/ -l /home/nukebull/Logs/backupSemanal.txt

# Sincronizamos rsync -a carpeta_origen/ carpeta_destino/ // en esta omitimos –delete -v -P

rsync -a /home/nukebull/Programacion/ /run/media/nukebull/401D-1A0E/BackUpSemanal/

# Pasamos el antivirus a la carpeta de destino y guardamos los datos (log y fecha) en un archivo de texto

#escribimos en archivo log la fecha para tenerlo ordenado
echo -e “n Fecha del Backup : n” >> /home/nukebull/Logs/backupSemanalBackUp.txt
echo `date` >> /home/nukebull/Logs/backupSemanalBackUp.txt

# ejecutamos antivirus
clamscan -r /run/media/nukebull/401D-1A0E/BackUpSemanal/ -l /home/nukebull/Logs/backupSemanalBackUp.txt

 

BackUpMensual.sh

#!/bin/bash

#Vicente Parra
#www.nukebull.com

# Pasamos el antivirus a la carpeta origen y guardamos los datos (log y fecha) en un archivo de texto

#escribimos en archivo log la fecha para tenerlo ordenado
echo -e “n Fecha del Backup :n” >> /home/nukebull/Logs/backupSemanal.txt
echo `date` >> /home/nukebull/Logs/backupSemanal.txt

# ejecutamos antivirus
clamscan -r /home/nukebull/Programacion/ -l /home/nukebull/Logs/backupSemanal.txt

# Sincronizamos rsync -rvuc carpeta_origen/ carpeta_destino/ en esta omitimos –delete -v -P

rsync -a /home/nukebull/Programacion/ /run/media/nukebull/401D-1A0E/BackUpSemanal/

# Pasamos el antivirus a la carpeta de destino y guardamos los datos (log y fecha) en un archivo de texto

#escribimos en archivo log la fecha para tenerlo ordenado
echo -e “n Fecha del Backup : n” >> /home/nukebull/Logs/backupSemanalBackUp.txt
echo `date` >> /home/nukebull/Logs/backupSemanalBackUp.txt

# ejecutamos antivirus
clamscan -r /run/media/nukebull/401D-1A0E/BackUpSemanal/ -l /home/nukebull/Logs/backupSemanalBackUp.txt

Configuración de la  programación diaria, semanal y mensual (IV).

Instalamos en el sistema el daemon de cronie:

  • sudo systemctl start cronie
  • sudo systemctl enable cronie

Ejecutamos:

  • crontab -e

Sintasix: minutos(00-60), Horas(00-24),dia del mes en numero(1-31), mes en numero (1-12). Día de la semana(0-6), acción.

Y escribimos en el fichero que nos abre ( en mi caso abre nano como editor):

  • 15 20 * * * cd /home/nukebull/Programacion/Blog/ && ./BackUpDiario.sh
  • 10 20 * * 0 cd /home/nukebull/Programacion/Blog/ && ./BackUpSemanal.sh
  • 00 20 15 * * cd /home/nukebull/Programacion/Blog/ && ./BackUpMensual.sh

Para guardar en nano (Control + O), para salir (Control + X).

Bibliografía.

Sobre CalmAV.

Antivirus CamAV

Sobre rsync.

Comandos rsync

Ejemplos rsync

Configuracion cronnie – crontab.

cChuleta CronTab