shell script

WordPress: preparando un plugin para publicar

2020-10-11 - Categorías: General / GNU/Linux
Logo de WordPress

¡Hola de nuevo! Dejo aquí un Shell Script de ayuda para preparar los ficheros de publicación para cada nueva versión de un plugin para WordPress. La idea es que estamos trabajando en un plugin en una instalación de WordPress. Por defecto en WordPress los plugins estarán en el directorio /wp-content/plugins/slug-de-tu-plugin/ y tendremos que preparar los ficheros antes de subirlos al repositorio de Subversion y publicarlos así en la comunidad de plugins para WordPress.

Este preparar los ficheros se puede hacer manualmente. Pero con cada nueva versión se puede volver tedioso, aburrido, el volver a generar la estructura. Así que si ya tenemos revisado y aceptado el publicar un plugin, podemos usar este Shell Script para ir publicando nuevas versiones.

Continuar leyendo..

GNU/Linux: lanzar un Shell Script si no está ejecutándose

2020-01-12 - Categorías: General / GNU/Linux
GNU/Linux Tux

Dejo aquí un pequeño truco para asegurarnos de que un programa continúa ejecutándose en un sistema GNU/Linux. En el caso de que dicho programa no se esté ejecutando entonces lo lanza de nuevo.

Para configurar esto se puede hacer creando un servicio del sistema. Pero en este post he hecho un Shell Script para simplificar el trabajo. Es decir, en este post se configura una tarea programada de usuario, que comprueba y lanza un Shell Script si no está en ejecución.

Continuar leyendo..

Raspberry Pi: manejando un keypad de 4×4 mediante Shell Script

2019-11-10 - Categorías: General / GNU/Linux

Aquí traigo un pequeño code-kata en Shell Script para manejar un keypad conectado a una Raspberry Pi. Es un código fuente que configura, mediante el sistema de ficheros, el acceso a los PINs del GPIO. Este pequeño programa, se puede traducir a cualquier otro lenguaje de programación. Se puede traducir directamente, ya que el manejo del GPIO en la Raspberry Pi, mediante el sistema de ficheros, es compatible e independiente de cualquier lenguaje de programación.

Continuar leyendo..

Raspberry Pi & GNU/Linux: encendiendo y apagando cosas

2019-11-01 - Categorías: General / GNU/Linux
GNU/Linux & Raspberry Pi: programando relés en el tiempo..

Jugando y jugando con la Raspberry Pi, con mi nuevo octo-relé 😛 que he conseguido encontrar una forma muy fácil de programar acciones en el tiempo, sin usar engorrosas instalaciones de programas. Es decir, aquí traigo un howto para programar encendidos y apagados, de lo que quieras, de cualquier cosa. Simplemente usando un sencillo script programado en Shell Script, y el programador de tareas que todo GNU/Linux tiene.

Me explico, tendremos este esquema de todo conectado:

Raspberry Pi <=> Relés <=> Cosas que queremos encender y apagar

Recapitulando, a la Raspberry Pi le podemos conectar relés, que trabajan a 5v/3v a los pines de entrada y salida llamados GPIO. Por otro lado, tenemos el problema de que las cosas que queremos encender y apagar tienen voltajes distintos, corriente alterna quizá, e intensidades que nos pueden fundir la Raspberry Pi. Entonces le ponemos relés entre las cosas y la Raspi, que simplemente van a dar paso a la corriente o no.

Continuar leyendo..

Programar copia de seguridad en servidor Linux + Apache + MySQL compatible

2015-05-15 - Categorías: GNU/Linux

Resulta que si tienes un servidor Linux, ya sea dedicado o virtual. Puede ser que no tengas una copia de seguridad automatizada de tus principales archivos. Los proveedores de servidores suelen ofrecer este servicio aparte cuando contratas un servidor. También puede ser que quieras automatizarlo en un ordenador local de ésta forma.

Aquí les dejo un script simplificado por si les sirve de ayuda:

### FICHERO PARA AUTOMATIZAR LA COPIA DE SEGURIDAD 
### DE TODOS LOS DATOS DEL SERVIDOR
FECHA=$(date +%Y%m%d%H%M%S)


# COPIA A FICHERO DE LA BD
mysqldump nombreBD -uusuario -ppassword > backups/nombreBD.temp.sql
tar -cvzf backups/nombreBD.${FECHA}.tar.gz backups/nombreBD.temp.sql
rm backups/nombreBD.temp.sql


# BD otras bds..

# copia incremental en el directorio de copia
# ojo! la primera vez hay que poner ‘full’ en vez de ‘incremental’ para preparar la primera copia
duplicity incremental –encrypt-key “password” –volsize 100 –no-encryption /home/ubuntu file:///home/ubuntu.backup/
–exclude /home/ubuntu/undirectoriodecache/


# borra historial de archivos antiguos
duplicity remove-older-than 60D file:///home/ubuntu.backup/

# limpia copias incompletas o mal realizadas
duplicity –no-encryption cleanup file:///home/ubuntu.backup/

Suponiendo que nuestro usuario se llama ‘ubuntu’ y estamos en el directorio del usuario (/home/ubuntu/). Este script se puede guardar en un fichero, por ejemplo: copiarTodo.sh Le damos permiso de ejecución con:

$ chmod +x copiarTodo.sh

Así podremos probarlo antes de programar su ejecución periódica. Ejecutamos:

$ ./copiarTodo.sh

..y vemos los resultados, es decir, vemos el directorio de salida de los ficheros generados:

  • /home/ubuntu/backups/ es el directorio donde se copian los datos de la base de datos compatible con MySQL.
  • /home/ubuntu.backup/ es el directorio de salida de Duplicity.

Para terminar falta programar la ejecución de dicho script. Para ello ejecutamos lo siguiente:

$ crontab -e

…y añadimos lo siguiente para una ejecución semanal por ejemplo el domingo a las tres y cuarto de la madrugada:

15 3 * * 0 ~/copiarTodo.sh > ~/copiarTodo.log

mysqldump

A saber, por si acaso no lo conocen, este es el comando de Linux que desde terminal permite extraer de una base de datos compatible con MySQL todos los datos y guardarlos en un fichero.

duplicity

Este programa es el que se utilizar para hacer copias de seguridad en Ubuntu. Por debajo del sistema de copias que viene instalado llamado Deja-dup, tenemos dicho Duplicity. Como es una aplicación de línea de comandos lo que tenemos en el entorno de escritorio es una interfaz de usuario a dicho programa.

Duplicity permite hacer copias incrementales. Es decir, después de una primera copia total de todos los archivos, permite en las siguientes sólo copiar los ficheros en los que ha habido cambios. Además las copias se empaquetan en ficheros de cierto tamaño, cifrados y protegidos con contraseña. Incluso se pueden enviar automáticamente a un servidor de ficheros FTP, por ejemplo.

Me remito a la documentación oficial para más información.

http://duplicity.nongnu.org/https://launchpad.net/deja-dup

Un saludo.

© 2020 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.