Bienvenidos a este capítulo del Curso de Linux para Hackers – Programar Tareas desde la Shell. Comparte este articulo y síguenos para recibir más capítulos y cursos gratis.

Esta guía es parte de un curso mucho más grande en donde te enseñamos a convertirte en hacker de 0 a 100. Desde los conocimientos más básicos hasta conseguir empleo.

En esta guía veremos desde cero un tema tan amplio como es Linux y lo haremos desde el punto de vista del hacking y la ciberseguridad.

Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Conceptos que aprenderás en esta sección:

  1. Comando at para tareas programadas: cómo usar at para programar tareas que se ejecutarán una sola vez.
  2. Instalación y activación del servicio atd: pasos para instalar y activar el servicio at en Linux.
  3. Comandos atq y atrm: listar y eliminar tareas programadas.
  4. Opciones del comando at: diversas opciones de at para configurar la ejecución de tareas.
  5. Ejemplos de uso de at: diferentes formas de programar tareas usando fechas y horarios específicos.

Linux al mando

El comando at de Linux se utiliza para programar una tarea para que se ejecute una sola vez en un momento determinado, sin editar un archivo de configuración. Es una alternativa al programador de tareas cron. Puede resultar útil si queremos ejecutar un proceso después de un tiempo, como apagar el sistema, realizar copias de seguridad, enviar correos electrónicos como recordatorios, etc.

El comando at es capaz de ejecutar un comando o script en una fecha y hora específicas, o en un intervalo de tiempo determinado. Podemos utilizar minutos, horas, días o semanas para especificar la hora. También permite algunas palabras clave como medianoche o hora del té (que se utiliza para “hasta las 4 p. m.”).

Nota: No se puede utilizar para tareas recurrentes, para tareas recurrentes prefiera el crontab de Linux.

Los comandos atq y atrm también forman parte del comando at. Veamos brevemente cómo funcionan ambos comandos.

El comando atq: el comando atq se utiliza para mostrar las tareas pendientes del usuario. Si el usuario es un usuario root, mostrará todas las tareas. De lo contrario, mostrará el trabajo del usuario en particular. El formato de visualización de la salida es ID de tarea, fecha, hora, cola y nombre de usuario.

El comando atrm: Se utiliza para eliminar tareas, identificadas por su número de trabajo.

Opciones

El comando ‘at’ admite varias opciones para que sea más específico. Las opciones que se facilitan con el comando at son las siguientes:

  • -V: Se utiliza para mostrar el número de errores estándar y salir exitosamente.
  • -q: se utiliza para especificar la cola. La designación de la cola consiste en una letra. Varía de la a a la z o de la A a la Z. La cola es la cola predeterminada y la cola b se utiliza para el lote. Las colas con las letras más altas se ejecutan con mayor prioridad. La cola ‘=’ es una cola especial; está reservada para los trabajos que se están ejecutando actualmente.
  • -m: se utiliza para enviar un correo electrónico al usuario cuando el trabajo se ejecuta correctamente. Funcionará si no hay salida.
  • -M: Se utiliza para no enviar nunca correo al usuario.
  • -f: Se utiliza para leer el trabajo desde el archivo en lugar de la salida estándar.
  • -t: Se utiliza para especificar la hora de ejecución de un trabajo, estará en el formato [[CC]AA]MMDDhhmm[.ss].
  • -l: La opción -l es un alias para el comando atq.
  • -r: La opción -r es un alias para el comando atrm.
  • -d: La opción -d es un alias para el comando atrm.
  • -b: La opción -b es un alias para el comando por lotes.
  • -v: La opción -v se utiliza para mostrar el tiempo del trabajo antes de su ejecución.

Para utilizar el comando at, tenemos que instalarlo en nuestro sistema. Veamos cómo instalarlo.

Instalar en el comando en Linux (Ubuntu)

Para instalar el comando, ejecute el siguiente comando:

sudo apt-get install at

El comando anterior solicitará la contraseña del sistema. Escriba la contraseña y presione la tecla ENTER. Iniciará un proceso demonio e instalará el comando at en su máquina. Considere el siguiente resultado:

Una vez instalado el comando at, debemos iniciar y habilitar el servicio atd . Para iniciar y habilitar el servicio atd en el momento del arranque, ejecute los siguientes comandos:

systemctl start atd  
systemctl enable atd  

El comando anterior iniciará y habilitará el servicio atd. Considere el siguiente resultado:

Una vez que el servicio atd esté habilitado en nuestra máquina, podremos programar cualquier tarea o comando. Ahora, estamos listos para programar nuestra primera tarea. Sigamos adelante.

Programe la primera tarea utilizando at

Para programar una tarea, ejecute el comando at seguido de la hora o una palabra clave.

Por ejemplo, para que se copie el archivo carlos.txt a la carpeta hackers a las 22:20, ejecute el comando de la siguiente manera:

 at 10:20 pm
cp carlos.txt hackers

Presione las teclas CTRL+D o ^d para completar la tarea. El comando anterior programará el backup.sh a las 22:20. Considere el siguiente resultado:

echo "cp carlos.txt hacker" | a las 22:20  

El comando anterior ejecutará el backup.sh a las 22:20. Considere el siguiente resultado:

Enumere las tareas programadas

Podemos listar todas las tareas programadas utilizando el comando atq . Si lo ejecutamos desde el usuario root, listará todos los trabajos del usuario. Pero, si no somos un usuario root, solo listará los trabajos del usuario en particular. Ejecute el comando de la siguiente manera:

atq  

Considere el siguiente resultado:

En el resultado anterior, podemos ver que hemos programado solo una tarea. Muestra el ID de la tarea, la fecha y la hora, y el nombre de usuario, respectivamente.

Eliminar tarea programada

Podemos eliminar una tarea programada por su ID de tarea con el comando atrm . Para eliminar un trabajo programado, ejecute el comando atrm seguido del ID del trabajo de la siguiente manera:

 atrm 2

El comando anterior eliminará la tarea que tiene el ID de tarea 2. Considere el siguiente comando:

A partir de la salida anterior, podemos ver si un trabajo se eliminó correctamente; no se mostrará ninguna salida. Para verificar si el trabajo se eliminó correctamente o no, ejecute el comando atq.

Verificar el contenido de la tarea programada

Podemos enumerar la tarea ejecutando el comando atq. Pero si queremos saber qué script o comando está programado, debemos ejecutar el comando at con la opción ‘-c’ seguida del ID de la tarea. Ejecute el comando de la siguiente manera:

 at -c 1

El comando anterior mostrará el contenido de la tarea que tiene el ID de tarea 2.

Ejemplos del comando at

Algunos ejemplos útiles del comando at son los siguientes:

Ejemplo 1: Programar tarea a las 8:00 AM.

Para programar la tarea a las 8:00 AM, ejecute el comando de la siguiente manera:

at 8:00 AM  

Producción:

Ejemplo 2: Programar una tarea a las 8:00 a. m. del próximo martes.

Para programar una tarea a las 8:00 a. m. del próximo martes, ejecute el siguiente comando:

at 8:00 AM tue  

Producción:

Ejemplo 3: Programar una tarea a las 8:00 a. m. del próximo 15 de abril.

Para programar una tarea a las 8:00 a. m. del próximo 15 de abril, ejecute el siguiente comando:

at 8:00 AM feb 17  

Producción:

Ejemplo 4: Programar tarea para las 8:00 a. m. de mañana.

Para programar una tarea a las 8:00 a. m. de mañana, ejecute el siguiente comando.

at 8:00 AM tomorrow  

Producción:

Ejemplo 5: Programar tareas para que se ejecuten justo después de 2 horas .

Para programar una tarea para que se ejecute justo después de 2 horas, ejecute el siguiente comando:

ahora + 2 horas  

Producción:

Obtener ayuda

Si te quedas atascado en algún lugar mientras usas el comando ‘at’, puedes buscar ayuda en tu terminal leyendo el manual. Para visualizar el manual del comando at , ejecuta el comando man de la siguiente manera:

Para leer más, desplácese por la salida y para salir del manual, presione la tecla ‘q’ .

Este comando tiene más opciones que puedes explorar

at --help

También  te recomendamos consultar las páginas man para este comando:

 man at

Resumen de los puntos clave:

  1. Comando at para programación de tareas puntuales
    El comando at permite programar tareas únicas en Linux para que se ejecuten en un momento específico sin modificar archivos de configuración. Es ideal para tareas que deben realizarse solo una vez, como copias de seguridad o apagado del sistema. A diferencia de cron, at no permite tareas recurrentes.
  2. Instalación y activación del servicio atd
    Para usar at, primero instala el servicio con:
    • sudo apt-get install at
      Luego, activa el servicio atd con:
    • systemctl start atd systemctl enable atd
  3. Programación de una tarea con at
    Para programar una tarea, usa el comando at seguido de la hora o fecha deseada, por ejemplo:
    • at 10:20 pm cp carlos.txt hackers Finaliza con CTRL+D para guardar la tarea programada. Puedes programar una tarea con formatos variados, como:
      • Horas específicas: at 8:00 AM.
      • Fechas y días: at 8:00 AM Tuesday, at 8:00 AM April 15.
      • Intervalos de tiempo: at now + 2 hours.
  4. Verificar tareas programadas con atq
    El comando atq lista todas las tareas programadas para el usuario actual o para el root, mostrando el ID de tarea, fecha, hora y usuario. Ejemplo:
    • atq
  5. Eliminar tareas programadas con atrm
    Para eliminar una tarea programada, usa atrm seguido del ID de la tarea. Ejemplo:
    • atrm 2 Puedes verificar si la tarea fue eliminada ejecutando atq.
  6. Ver el contenido de una tarea con at -c
    Para ver los comandos o scripts programados en una tarea, usa:
    • at -c <ID de tarea>
  7. Opciones avanzadas del comando at
    • -m: envía un correo electrónico al usuario cuando la tarea se ejecuta correctamente.
    • -f <archivo>: lee el comando desde un archivo en lugar de la salida estándar.
    • -l: alias para listar tareas (atq).
    • -r y -d: alias para eliminar tareas (atrm).
  8. Obtener ayuda adicional
    Consulta man at o at --help para ver opciones adicionales y configuraciones avanzadas para el comando at.

Pon en práctica lo aprendido

Ahora pon a prueba lo aprendido con estas preguntas y ejercicios.

Preguntas

  1. ¿Para qué se utiliza el comando at en Linux y en qué se diferencia del cron?
  2. ¿Qué tipo de tareas se pueden programar con el comando at?
  3. ¿Cuál es la función del comando atq y cuándo es útil?
  4. ¿Cómo se elimina una tarea programada usando el comando atrm?
  5. ¿Qué debe hacerse antes de programar una tarea con at en un sistema Ubuntu?
  6. ¿Cómo se inicia y habilita el servicio atd en el arranque del sistema?
  7. ¿Qué opciones de tiempo y palabras clave admite at para especificar la programación?
  8. ¿Cómo se lista el contenido específico de una tarea programada con el ID de tarea?
  9. ¿Qué opciones adicionales permite at y cómo se muestran en el manual de ayuda?
  10. ¿Cómo programarías una tarea para ejecutarse en un tiempo relativo, como dentro de dos horas?

Ejercicios

  1. Instale el paquete at en su sistema y verifique su instalación iniciando el servicio atd.
  2. Programe una tarea que copie un archivo a una carpeta específica a las 6:00 PM y verifique su programación con atq.
  3. Elimine una tarea programada con atrm usando su ID y confirme su eliminación.
  4. Programe una tarea para que se ejecute a las 10:00 AM del próximo martes y verifique con atq que esté lista.
  5. Programe una tarea que se ejecute en 30 minutos y verifique su programación.
  6. Programe un script backup.sh para que se ejecute mañana a las 9:00 AM y confirme su programación.
  7. Consulte el contenido de una tarea programada usando at -c y explique la salida.
  8. Ejecute at --help y liste tres opciones adicionales junto con sus funciones.
  9. Programe una tarea a las 7:00 AM del próximo 15 de abril y verifique que esté correctamente programada.
  10. Programe una tarea para que se ejecute el próximo domingo a las 5:00 PM y confirme su programación con atq.

Respuestas a las Preguntas

  1. Comando at: Programa tareas para ejecutarse una vez en un momento específico; a diferencia de cron, no permite tareas recurrentes.
  2. Tareas con at: Copias de seguridad, envíos de correos, apagado del sistema, y cualquier comando o script ejecutable en una fecha y hora específicas.
  3. Función de atq: Muestra todas las tareas pendientes del usuario o de todos los usuarios si se ejecuta como root.
  4. Eliminar tareas con atrm: atrm <ID_tarea> elimina una tarea programada según su ID.
  5. Instalar at en Ubuntu: Usar sudo apt-get install at e iniciar el servicio atd.
  6. Iniciar y habilitar atd: Usar systemctl start atd y systemctl enable atd para activar el servicio al arranque.
  7. Opciones de tiempo en at: Admite palabras como mañana, mediodía, y tiempos relativos como ahora + 2 horas.
  8. Listar contenido de una tarea: Usar at -c <ID_tarea> para ver los comandos específicos programados en la tarea.
  9. Opciones adicionales en at: Consultar con at --help o man at.
  10. Programar tarea en tiempo relativo: at now + 2 hours ejecuta una tarea en dos horas.

Respuestas a los Ejercicios

  1. Instalar y verificar at: Usar sudo apt-get install at, iniciar systemctl start atd, y verificar su estado con systemctl status atd.
  2. Programar tarea de copia a las 6:00 PM: at 6:00 pm, luego cp archivo.txt /ruta/destino, y confirmar con CTRL+D. Verificar con atq.
  3. Eliminar tarea con atrm: Usar atrm <ID_tarea> y confirmar con atq que la tarea no aparece.
  4. Tarea para el próximo martes a las 10:00 AM: at 10:00 am Tue, escribir comando, confirmar con CTRL+D, y verificar con atq.
  5. Programar en 30 minutos: at now + 30 minutes, escribir comando, y confirmar con CTRL+D. Verificar en atq.
  6. Programar backup.sh para mañana a las 9:00 AM: at 9:00 am tomorrow, ./backup.sh, y verificar con atq.
  7. Consultar contenido de tarea con at -c: at -c <ID_tarea> muestra el script o comando específico programado.
  8. Opciones adicionales de at:
    • -m: Envía correo al usuario al completarse.
    • -t: Permite formato de fecha y hora detallado.
    • -v: Muestra el tiempo de ejecución antes de confirmarse.
  9. Programar tarea para el 15 de abril a las 7:00 AM: at 7:00 am April 15, escribir comando y confirmar con CTRL+D.
  10. Programar para el próximo domingo a las 5:00 PM: at 5:00 pm Sun, escribir comando, confirmar con CTRL+D, y verificar con atq.

No te detengas, sigue avanzando

Aquí tienes un propósito que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:

Hacker de 0 a 100 desde las bases hasta conseguir empleo

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/hacker-de-0-a-100-desde-las-bases-hasta-conseguir-empleo/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

Hemos creado una ruta de 0 a 100. Un plan de desarrollo que va desde las bases: cómo aprender hacking, qué aprender, en qué orden; pasando por las areas técnicas necesarias como Linux, Redes, Programación y los conocimientos necesarios en ciber seguridad, hacking, pentesting hasta la práctica y el inicio laboral: Crear tu propio laboratorio, certificaciones, adquirir experiencia e iniciarse laboralmente.

Este es un mega post. Una guía con más de 250 artículos que te llevaran por el camino del hacker. Esta guía es gratuita y esta creada gracias al esfuerzo y al trabajo combinado de Alvaro Chirou y mío (Laprovittera Carlos).

Creamos esta guía (futuro curso) para que puedas iniciarte en este mundo. Puedes arrancar ahora, GRATIS, solo necesitas un PC, conexión a internet y paciencia (Ser hacker NO ES un camino de la noche a la mañana).

El Hacking y la ciberseguridad es una carrera divertida, emocionante y gratificante que te recompensará y desafiará por igual. Sin embargo, para quienes buscan adentrarse en este campo en auge y en constante evolución, puede resultar difícil saber por dónde empezar. ¡Ahí es donde entra en juego nuestra guía en ciberseguridad!

Esta es la hoja de ruta hacia el trabajo de ciberseguridad de tus sueños. Te ayudará a entender qué conocimientos, habilidades y certificados son necesarios para alcanzar tus metas profesionales y tener una carrera próspera. Si quieres ser consultor de ciberseguridad, analista de malware, evaluador de penetración, analista de SOC o cualquier otro puesto de ciberseguridad, esta guía es lo que necesitas.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

Compartimos estos recursos para ayudar a la comunidad de hacking y ciberseguridad. COMPARTE y Siéntete libre de agregar más sugerencias en los comentarios a continuación, respondemos todos y cada uno de los comentarios.

Saludos amigos y happy hacking!!!