Archivo

Entradas Etiquetadas ‘CRON’

Script ejecutado en el arranque de Linux

jueves, 3 de mayo de 2018 Sin comentarios

En aquellos casos en los que queremos automatizar alguna tarea o simplemente lanzar un script al inicio del sistema y no queremos profundizar en la edición de ficheros de configuración de servicio, no bastará con programar CRON a través de su editor (crontab -e) de la siguiente forma:

@reboot /path/to/script

Categories: GNU/Linux Tags:

DNS dinámicas con DigitalOcean y su API v2.0

lunes, 7 de julio de 2014 Sin comentarios

Si queremos tener accesible nuestra Raspberry a través de una conexión a Internet que nos provee una IP dinámica, podemos hacer uso de la API de DigitalOcean para configurar un subdominio que vaya cambiando su IP a la par que la nuestra.

Para ello deberemos crear un nuevo token desde el panel de administración de DigitalOcean, algo parecido a una especie de hash.

Después crearemos un nuevo registro de tipo A en el gestor de DNS que podemos llamar “home”, con lo que nuestro dominio dinámico será algo así como “home.midominio.com”.

Después haremos un script en nuestra Raspberry que tenga el siguiente aspecto:

!/bin/bash
var_token=”nuestroToken”
var_domain=”midominio.com”
var_record_id=”elIDdeHome”
var_ip=$(curl -s icanhazip.com)

## Devuelve las últimas acciones realizadas ##
#curl -X GET “https://api.digitalocean.com/v2/actions” \
# -H “Authorization: Bearer $var_token”
## Devuelve la información sobre el dominio ##
#curl -X GET “https://api.digitalocean.com/v2/domains/$var_domain/records” \
# -H “Authorization: Bearer $var_token”

## Cambia la IP del dominio ##
curl -X PUT “https://api.digitalocean.com/v2/domains/$var_domain/records/$var_record_id” \
-d'{“data”:”‘$var_ip'”}’ \
-H “Authorization: Bearer $var_token” \
-H “Content-Type: application/json”

Los únicos valores que tendremos que cambiar serán var_token (el token que hemos generado en el paso anterior), var_domain (el dominio que nos interesa modificar) y el var_record_id (un valor que deberemos recuperar).

Entonces, nuestra IP external la obtendremos gracias al servicio de “icanhzip.com” que soporta IPv4 e IPv6. El siguiente valor que nos interesa recuperar será el identificador del registro A de “home”, que se obtiene ejecutando el siguiente script:

!/bin/bash
var_token=”nuestroToken”
var_domain=”midominio.com”

curl -X GET “https://api.digitalocean.com/v2/domains/$var_domain/records” \

-H “Authorization: Bearer $var_token”

Una vez editado el script con toda ésta información sólo nos quedará programarlo en Cron. Para ello ejecutaremos como root el siguiente comando:

crontab -e

Añadiremos la ruta hasta nuestro script y la información para que se ejecute todos los días cada 5 horas:

# Actualiza la IP en DigitalOcean
* */5 * * * /opt/dynamicDNS/dns-digitalocean.sh > /dev/null 2>&1 | logger “Digital Ocean – Updating IP”

 

No olvidar instalar Curl en Raspbmc si no lo tenéis ya:

apt-get install curl

 

 

Direcciones de interés:

Información relativa a la API v2 de DigitalOcean

Manual Básico de Cron

 

 

SSH sin contraseña

miércoles, 16 de marzo de 2011 1 comentario

Resulta muy útil en procesos automatizados el poder conectar a los equipos vía SSH sin que una persona tenga que introducir manualmente la contraseña. Si, por ejemplo, queremos que nuestro servidor central recoja todas las copias de seguridad del resto de servidores, que pueden o no estar en nuestra red local, de forma que todas las noches esté programado en CRON y se use el comando SCP.

Para realizar dicha conexión sin el uso de una contraseña que deba ser escrita, necesitaremos primero generar una clave pública ejecutando el siguiente comando dejando vacío el “passphrase” que nos pide:

ssh-keygen -t rsa

Hay que tener en cuenta que el comando anterior lo deberemos lanzar con el usuario con el que queramos usar la conexión.

Posteriormente copiaremos el contenido del fichero generado con extensión “.pub” al siguiente fichero en la máquina remota:

/root/.ssh/authorized_keys

O, si no se trata del usuario “root”:

/home/nombreUsuario/.ssh/authorized_keys

 

Categories: GNU/Linux Tags: , , ,