Primeros pasos con crontab
Creando un nuevo cron en ubuntu (o la mayoría de los otros sistemas operativos Linux)
Puede crear una nueva entrada cron simplemente escribiendo
crontab -e
en la línea de comando. Si es la primera vez que desea editar su crontab (archivo), se le solicitará una selección de editor:
no crontab for <user> - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.basic
4. /usr/bin/vim.tiny
Choose 1-4 [2]:
Simplemente elija su editor siguiendo las indicaciones, y su crontab se abrirá con un archivo vacío (que solo contiene algunas líneas comentadas de explicación):
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
Como puede ver, ya hay una entrada de ejemplo en el texto:
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
Esto crearía un archivo de respaldo llamado home.tgz
dentro de /var/backups/
. El tiempo para este crontab sería
every monday (first day of week) at 5:00 A.M.
Si había ingresado esa línea como su crontab, todo lo que tenía que hacer ahora sería guardar el archivo crontab. Por ejemplo, con el editor nano
, esto se hace con <Ctrl> + <X>
- luego confirme para guardar con Y
.
Para verificar su crontab, simplemente escriba
crontab -l
en la consola
Más información sobre crontimings que puede elegir:
# * * * * * command to execute
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
# │ │ │ └────────── month (1 - 12)
# │ │ └─────────────── day of month (1 - 31)
# │ └──────────────────── hour (0 - 23)
# └───────────────────────── min (0 - 59)
Los caracteres especiales en cronjobs son:
Asterisco ( *
)
El asterisco indica que la expresión cron coincide con todos los valores del campo. Por ejemplo, usar un asterisco en el cuarto campo (mes) indica todos los meses.
Barra oblicua (/
)
Las barras describen incrementos de rangos. Por ejemplo, 3-59/15 en el primer campo (minutos) indica el tercer minuto de la hora y cada 15 minutos a partir de entonces. La forma “*/…” es equivalente a la forma “primero-último/…”, es decir, un incremento sobre el mayor rango posible del campo.
Coma (,
)
Las comas se utilizan para separar elementos de una lista. Por ejemplo, usar “MON,WED,FRI” en el quinto campo (día de la semana) significa lunes, miércoles y viernes.
Guión ( -
)
Los guiones definen rangos. Por ejemplo, 2000-2010 indica todos los años entre 2000 y 2010 dC, inclusive.
Porcentaje ( %
)
Los signos de porcentaje (%) en el comando, a menos que se escapen con una barra invertida (), se cambian a caracteres de nueva línea y todos los datos después del primer % se envían al comando como entrada estándar.
Instalar crontab en Linux
Debian/Gratis
# apt-get update & apt-get -y upgrade
# apt-get install cron
Fedora/Cent OS
# yum -y update
# yum install vixie-cron
Arco
# pacman --noconfirm -Syu
# pacman -S cronie