Como prometi en la entrada anterior a esta, añadiremos el script que hemos escrito a cron para que se ejecute automaticamente cuando queramos. Como actualmente uso Archlinux primero lo he hecho en esta distro, luego lo haré en Debian para los que useis esa distro o derivadas.
El caso es que me ha costado un rato de dar con la tecla en Arch, ya que la info que he encontrado no es del todo clara y el manual de crontab tampoco, pero tras varios errores viendo » No existe el archivo o directorio » probé a hacerlo mas manual, aquí os cuento como por si también os habeis tropezado en esto.
Lo primero que haremos será crear un archivo junto al script, yo lo he llamado backup a secas.
nano backup
Y en este archivo editaremos cuando queremos que se ejecute el script de la siguiente forma
30 12 * * * /ruta/del/script.sh
Esto significa
30 = minuto 30 (0-59)
12 = hora 12 (0-23)
* = todos los dias del mes (1-31)
* = todos los meses del año (1-12)
* = todos los dias de la semana (0-6)
Por tanto este script se ejecutara a las 12:30 de cada dia.
Si quisieramos por ejemplo usarlo una sola vez a la semana, quedaria así
30 12 * * 5 /ruta/del/script.sh
Esto nos lanzaría el script todos los viernes a las 12:30, como veis las posibilidades son infinitas, o casi 😛
Tambien existen unas palabras especiales que nos facilitan la introducción del horario, os muestro algunas:
@hourly
@daily
@weekly
@mounthly
@yearly
@reboot
Creo que son lo suficientemente obvias para no tener que explicarlas, si quisieramos hacer una copia cada hora seria
@hourly /ruta/del/script.sh
o cada semana
@weekly /ruta/del/script.sh
Ya tenemos nuestro archivo editado con el horario que queremos, guardamos y cerramos.
Si lo lo habeis usado antes, seguro teneis que arrancar y agregar al inicio del sistema el demonio cron y lo haremos asi.
sudo systemctl start cronie.service
y lo adjuntamos al inicio
sudo systemctl enable cronie.service
Ya hecho esto solo nos falta añadir el archivo a nuestro cron
crontab /ruta/del/fichero /ruta/del/script.sh
y comprobamos que este correcto con
crontab -l
lo que nos dara una lista de los script que tenemos gestionados por cron
Ya tenemos añadido a cron nuestro script.
Como siempre mucha y mejor información en el manual de crontab
Me da la sensación de que no he terminado de entender esto bien, o que se me escapa algo, pero la verdad es que ya lo he probado y funciona. Si descubro mas de su funcionamiento, lo dejaré por aquí.
Pingback: Bitacoras.com
Buenos días Dmacias.
Ando tratando de hacer algo similar y tu post me cae como anillo al dedo está muy bien explicado, gracias por el tiempo dedicado en realizarlo.
Intento hacer las cosas con ciertas diferencias; no me corre y quisiera saber si me puedes dar una mano.
La principal diferencia radica en que mi partición home (disco A) como el disco donde hago el backup (disco B) están cifrados,así que mi script monta el disco con cryptsetup en /dev/mapper/backup y posteriormente es montada la partición en /backup, antes de hacer el backup. El montaje se hace con un keyfile para que sea automatizado. El script que hace todo el proceso se llama autoBack.sh y su contenido es:
# Descifra el disco de destino
cryptsetup luksOpen –key-file /home/key/keyfileback /dev/sdb1 backup;
# Monta el disco en /backup
mount /dev/mapper/backup /backup/;
# Crea backup incremental
rsync –progress -av –delete -u /home/ /backup/;
# Desmonta partición
umount /backup;
# Cierra cifrado
cryptsetup luksClose backup
Y la tarea de cron encaragada de lanzarlo es:
0 13 * * * /home/key/autoBack.sh
Pero no funciona y no me hace el backup a las 13:00 cómo deberías ser.
Cabe aclarar que el script autoBack.sh está bien, porque si lo corro desde la consola ejecuta todo el proceso impecablemente.
No es mas, quisiera saber si puedes ayudarme con esto.
De nuevo te agradezco por el post y por el tiempo dedicado a leer esto. De antemano agradezco en caso de que puedas ayudarme con mi problema.
Se me olvidaron un par de detalles, para cron utilizo cronie, y al revisar el estado del servicio con: systemctl status cronie.service
me muestra que el servicio está funcionando a la perfección:
cronie.service – Periodic Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/cronie.service; enabled)
Active: active (running) since dom 2013-07-07 06:56:22 COT; 1h 24min ago
Main PID: 225 (crond)
CGroup: name=systemd:/system/cronie.service
??225 /usr/bin/crond -n
Holaaaaa
no se si he entendido bien, pero te explico
Tiene que crear un nuevoarchivo que contenga la linea que me muestras 0 13 * * * /home/key/autoBack.sh y luego agregarlo a crontab asi
crontab /home/key/nuevoarchivo /home/key/autoBack.sh
luego haces un crontab -l y te debe salir la lista de acciones de crontab, y debe de estar.
Si de todos modos no te funciona prueba a cambiar 0 13 * * * por @daily por si acaso
Espero que te funcione y que te pases por aqui a decirnos que tal te fue.
Un saludo 🙂
Gracias por la respuesta.
El acrchivo que describes ya lo tenía y lo cargaba con crontab. El archivo es backupCron y su contenido es el mismo que tu describes: 0 13 * * * /home/key/autoBack.sh.
Al usar crontab -l la tarea aparece registrada pero de nuevo no ocurre nada.
No he probado con el @daily así que lo voy a hacer y me pego de nuevo una pasada por acá.
Esto me genera dos nuevas dudas ¿el @daily tiene un horario predefinido para actuar? y ¿dichi horario es personalizable?.
De nuevo gracias por tu ayuda, voy a ver como me sale todo.
Buanas tardes Dmacias.
El problema era la banalidad mas grande del mundo. No le había dado privilegios de ejecución al script con chmod +x autoBack.sh.
La razón por la que si me corría desde la consola y no desde el crontab es porque la invocaba con sh autoBack.sh y no con ./autoBack.sh que es como se invocan los ejecutables.
De nuevo muchas gracias por tu ayuda tu post fue de mucha utilidad y te ganaste un nuevo suscriptor.
Hay algo que creo que no sobra decir y es que soy usuario asiduo de los RSS así que no estaría de mas pedirte de la forma mas cordial que lo implementes.
Hola amigo, podrias por favor pegar la ruta completa???? Gracias y saludos!!!
De que ruta hablamos???
Por cierto, he actualizado la plantilla y la letra de los comentarios se ha quedado digamos enanas, o es mi ordenador k se a quedado un poco tonto con la calor ???
Desde luego, si no me lo cuentas, creeria que solo me pasan a mi estas cosas jajajajaja xDD.
Yo tambien soy de los que aun usan los RSS y almenos a mi, si pincho sobre el iconito rojo de feedburner te lleva a mis rss, solo copias esa dirección en tu lector de feed favorito y listo.
De todos modos aquí te la pongo, https://feeds.feedburner.com/Dmaciasblog
EDITO:
parece ser que de nuevo feedburner hace lo que le sale de los web’s, haber si mañana con mas tiempo lo miro
Gracias por pasarte a comentar 🙂
Un saludo
y si quisiera correrlo cada 5 minutos como hago ..