<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Programar la ejecución de comandos</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Guía de Referencia"><link rel="up" href="cmdutils.html" title="Capítulo 5. Los utilitarios de la línea de comandos"><link rel="previous" href="command-find.html" title="find: Busca archivos en función de ciertos criterios"><link rel="next" href="command-archivers.html" title="Archivado y compresión de datos"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Programar la ejecución de comandos</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="command-find.html">Anterior</a> </td><th width="60%" align="center">Capítulo 5. Los utilitarios de la línea de comandos</th><td width="20%" align="right"> <a accesskey="n" href="command-archivers.html">Siguiente</a></td></tr></table><hr></div><div class="sect1" lang="es"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="command-sheduling"></a>Programar la ejecución de comandos</h2></div></div><div></div></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="command-cron"></a>crontab: reportar o editar su archivo crontab</h3></div></div><div></div></div><p><a name="BId-cmdutils-pa88"></a><a class="indexterm" name="BId-cmdutils-it3"></a><span><b class="command">crontab</b></span> es un comando que le permite ejecutar comandos a intervalos de tiempo regulares, con la ventaja adicional que no tiene que estar conectado al sistema y que el reporte de salida se le envía por correo electrónico. Los intervalos se pueden especificar en minutos, horas, días, e incluso meses. Dependiendo de las opciones, <span><b class="command">crontab</b></span> actuará diferentemente:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdutils-pa89"></a><tt class="option">-l</tt>: Mostrar su archivo <tt class="filename">crontab</tt> corriente.</p></li><li><p><a name="BId-cmdutils-pa90"></a><tt class="option">-e</tt>: Editar su archivo <tt class="filename">crontab</tt>.</p></li><li><p><a name="BId-cmdutils-pa91"></a><tt class="option">-r</tt>: Eliminar su archivo <tt class="filename">crontab</tt> corriente.</p></li><li><p><a name="BId-cmdutils-pa92"></a><tt class="option">-u <usuario></tt>: Aplicar una de las opciones de arriba para el usuario <tt class="option"><usuario></tt>. Sólo <tt class="literal">root</tt> puede hacer esto.</p></li></ul></div><p><a name="BId-cmdutils-pa93"></a>Comencemos editando un <tt class="filename">crontab</tt>. Si ingresa <span><b class="command">crontab -e</b></span>, estará frente a su editor de texto favorito si tiene definida la variable de entorno <tt class="varname">EDITOR</tt> o la variable de entorno <tt class="varname">VISUAL</tt>, en caso contrario se usará <span class="application">Vi</span>. Una línea de un archivo <tt class="filename">crontab</tt> se compone de seis campos. Los primeros cinco campos son los intervalos de tiempo para los minutos, horas, días en el mes, meses y días en la semana. El sexto campo es el comando a ejecutar. Las líneas que comienzan con un <tt class="literal">#</tt> se consideran como comentarios y serán ignoradas por <span><b class="command">crond</b></span> (el programa que es responsable de ejecutar los archivos <tt class="filename">crontab</tt>). Aquí tiene un ejemplo de <tt class="filename">crontab</tt>:</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Nota</th></tr><tr><td colspan="2" align="left" valign="top"><p><a name="BId-cmdutils-pa94"></a>Para poder imprimir lo que sigue con una tipografía legible, tenemos que separar las líneas largas. Por lo tanto, algunos trozos deben ser ingresados en una única línea. Cuando se pone el caracter <tt class="literal">\</tt> al final de una línea, esto significa que la línea continua debajo. Esta convención funciona en los archivos <tt class="filename">Makefile</tt> y en el shell, así como también en otros contextos.</p></td></tr></table></div><p><a name="BId-cmdutils-pa95"></a> <a name="BId-cmdutils-sc12"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"> # Si no quiere recibir correo electrónico simplemente # "comente" la siguiente línea #MAILTO="" # # Hacer un reporte de todas las imágenes nuevas a # las 14 hs. cada dos días, desde el ejemplo de # arriba - después de eso, "retocar" el archivo de # "estampa". El "%" se considera como una línea # nueva, esto le permite poner varios comandos # en una misma línea. 0 14 */2 * * find /shared/images \ -cnewer /shared/images/stamp \ -a -iregex ".*\.jpe?g" \ -a -not -regex \ ".*/old/.*"%touch /shared/images/stamp # # Cada Navidad, reproducir una melodía :) 0 0 25 12 * mpg123 $HOME/canciones/feliz_navidad.mp3 # # Imprimir la lista de compras cada martes a las 17 hs... 0 17 * * 2 lpr $HOME/lista_de_compras.txt </pre></td></tr></table><p> </p><p><a name="BId-cmdutils-pa96"></a>Hay muchas otras maneras de especificar los intervalos aparte de las que se muestran en este ejemplo. Por ejemplo, puede especificar un conjunto de <a name="BId-cmdutils-gt7" href="glossary.html#term-discrete-values"><i class="glossterm">valores discretos</i></a> separados por comas (<tt class="literal">1,14,23</tt>) o un rango (<tt class="literal">1-15</tt>), o incluso una combinación de ambos (<tt class="literal">1-10,12-20</tt>), o con un paso opcional (<tt class="literal">1-12,20-27/2</tt>) ¡Ahora queda en sus manos encontrar comandos útiles para poner!</p></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="command-at"></a>at: Programar un comando, pero solo una vez</h3></div></div><div></div></div><p><a name="BId-cmdutils-pa97"></a><a class="indexterm" name="BId-cmdutils-it4"></a>También podría querer ejecutar un comando un día dado, pero no regularmente. Por ejemplo, quiere que se le recuerde de una cita, hoy a las 18 horas. Usted emplea <span class="application">X</span>, y quiere que se le notifique, por ejemplo, a las 17:30 hs. que debe irse. <span><b class="command">at</b></span> es lo que Usted quiere aquí: <a name="BId-cmdutils-sc13"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"> $ at 5:30pm # Ahora está frente al prompt "at" at> xmessage "¡Hora de irse! Cita a las 6pm" # Presione C-d para at> <EOT> $ </pre></td></tr></table><p> Se puede especificar la hora de diferentes maneras:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdutils-pa98"></a><tt class="option">now +<intervalo></tt>: Significa eso, ahora, más un intervalo opcional. (Si no se especifica el intervalo significa ahora mismo). La sintaxis para el intervalo es <tt class="option"><n></tt> (minutes|hours|days|weeks|months) (minutos|horas|días|semanas|meses ; sólo en inglés). Por ejemplo, puede especificar <tt class="option">now + 1 hour</tt> (dentro de una hora), <tt class="option">now + 3 days</tt> (dentro de tres días) y así sucesivamente.</p></li><li><p><a name="BId-cmdutils-pa99"></a><tt class="option"><hora></tt> <tt class="option"><día></tt>: Especificar la fecha por completo. El parámetro <tt class="option"><hora></tt> es obligatorio. <span><b class="command">at</b></span> es muy liberal en lo que acepta: por ejemplo, puede ingresar <tt class="literal">0100</tt>, <tt class="literal">04:20</tt>, <tt class="literal">2am</tt>, <tt class="literal">0530pm</tt>, <tt class="literal">1800</tt>, o uno de los tres valores especiales: <tt class="literal">noon</tt> (mediodía), <tt class="literal">teatime</tt> (la hora del té, 16 hs.) o <tt class="literal">midnight</tt> (medianoche). El parámetro <tt class="option"><día></tt> es opcional. También puede especificarlo de diferentes maneras: <tt class="literal">12/20/2001</tt> por ejemplo, notación americana para el 20 de diciembre de 2001, o, a la europea, <tt class="literal">20.12.2001</tt>. Puede omitir el año, pero entonces sólo se acepta la notación europea: <tt class="literal">20.12</tt>. También puede especificar el mes por su abreviatura en inglés: <tt class="literal">Dec 20</tt> o <tt class="literal">20 Dec</tt> son ambos válidos.</p></li></ul></div><p><a name="BId-cmdutils-pa100"></a><span><b class="command">at</b></span> también acepta opciones diferentes:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdutils-pa101"></a><tt class="option">-l</tt>: Imprime la lista de los trabajos que están programados; el primer campo es el número de trabajo. Esto es equivalente al comando <span><b class="command">atq</b></span>.</p></li><li><p><a name="BId-cmdutils-pa102"></a><tt class="option">-d <n></tt>: Quita el trabajo número <tt class="option"><n></tt> de la lista. Puede obtener los números de los trabajos con el comando <span><b class="command">atq</b></span> o con la opción anterior. Esto es equivalente al comando <span><b class="command">atrm <n></b></span>.</p></li></ul></div><p><a name="BId-cmdutils-pa103"></a>Como siempre, consulte la página Man <span class="citerefentry"><span class="refentrytitle"><a name="BId-cmdutils-rt2"></a>at</span>(1)</span> para más opciones.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="command-find.html">Anterior</a> </td><td width="20%" align="center"><a accesskey="u" href="cmdutils.html">Subir</a></td><td width="40%" align="right"> <a accesskey="n" href="command-archivers.html">Siguiente</a></td></tr><tr><td width="40%" align="left" valign="top">find: Busca archivos en función de ciertos criterios </td><td width="20%" align="center"><a accesskey="h" href="index.html">Inicio</a></td><td width="40%" align="right" valign="top"> Archivado y compresión de datos</td></tr></table></div></body></html>