Cuando ejecutás crontab -e, el sistema abre el archivo de tareas programadas con un editor de texto. Según la configuración de la cuenta puede aparecer nano, Vim u otro editor. Elegir uno que conozcas reduce el riesgo de guardar una línea incompleta, salir sin conservar los cambios o borrar accidentalmente una tarea existente.
Antes de editar: revisar y respaldar el crontab
Primero listá las tareas actuales:
crontab -l
Si ya existen tareas importantes, guardá una copia antes de modificarlas:
crontab -l > crontab-backup.txt
El respaldo queda en el directorio actual. Revisá dónde estás con pwd y protegé el archivo si contiene rutas, nombres de usuario u otros datos internos. La orden crontab -r elimina el crontab del usuario: no la uses como método de edición.
Abrir crontab con nano
nano suele resultar más sencillo si no trabajás habitualmente en la terminal. Para utilizarlo solo en esa edición, ejecutá:
EDITOR=nano crontab -e
En nano, los atajos principales aparecen en la parte inferior. El símbolo ^ representa la tecla Ctrl:
- Ctrl + O: guardar el archivo.
- Enter: confirmar el nombre propuesto al guardar.
- Ctrl + X: salir del editor.
- Ctrl + W: buscar texto.
- Alt + U: deshacer el último cambio, cuando la versión instalada lo admite.
Después de guardar y salir, crontab valida el formato básico e instala la nueva versión. Si informa un error, corregí la línea indicada antes de abandonar el editor.
Abrir crontab con Vim
Vim es potente, pero distingue entre modos. Para seleccionarlo en una única edición:
EDITOR=vim crontab -e
Al abrirse, presioná i para entrar en modo inserción y editar. Cuando termines, presioná Esc y usá uno de estos comandos:
:wqy Enter para guardar y salir.:q!y Enter para salir descartando los cambios.:wy Enter para guardar sin cerrar.
Si al escribir aparecen letras como comandos o el cursor no se comporta como esperabas, probablemente seguís en modo normal. Presioná i antes de introducir texto.
Definir el editor para la sesión
También podés definir las variables EDITOR y VISUAL para todas las órdenes posteriores de la sesión:
export EDITOR=nano
export VISUAL=nano
crontab -e
Para Vim, reemplazá nano por vim. En algunos entornos se consulta primero VISUAL y luego EDITOR, por lo que conviene definir ambas.
Hacer permanente la elección
Si utilizás Bash y querés conservar la preferencia al iniciar futuras sesiones, agregá estas líneas a ~/.bashrc:
export EDITOR=nano
export VISUAL=nano
Luego cerrá y volvé a abrir la sesión SSH, o recargá la configuración con source ~/.bashrc. Antes de elegir un editor verificá que esté instalado:
command -v nano
command -v vim
En un hosting administrado quizá no tengas permisos para instalar paquetes. Si el comando no devuelve una ruta, utilizá el editor disponible o consultá al soporte.
Cómo se escribe una tarea cron
Cada línea de una tarea de usuario tiene cinco campos de tiempo y un comando:
MINUTO HORA DIA-DEL-MES MES DIA-DE-LA-SEMANA COMANDO
Por ejemplo, esta tarea se ejecuta todos los días a las 03:15:
15 3 * * * /ruta/al/comando
Los asteriscos significan “todos los valores” del campo. No copies una expresión sin comprobar su horario, zona horaria y efecto. En cPanel también podés crear tareas desde la interfaz; nuestra guía de Cron Jobs en cPanel explica ese procedimiento.
Usar rutas absolutas y un entorno predecible
cron se ejecuta con un entorno más limitado que una terminal interactiva. Por eso un comando que funciona al escribirlo por SSH puede fallar como tarea programada. Utilizá rutas completas para intérpretes, scripts y archivos, y definí explícitamente el directorio de trabajo cuando sea necesario.
15 3 * * * cd /home/usuario/aplicacion && /usr/bin/php tarea.php
Confirmá las rutas reales con command -v php o el selector de PHP de tu cuenta. No des por sentado que PATH, variables de la aplicación o versiones de PHP coinciden con las de tu sesión SSH.
Evitar tareas superpuestas
Si una tarea tarda más que su intervalo, pueden quedar varias ejecuciones simultáneas consumiendo CPU, memoria o conexiones. Antes de programarla medí su duración, elegí una frecuencia razonable y, cuando corresponda, implementá un bloqueo seguro dentro del script o con una herramienta disponible en el servidor.
No programes procesos pesados en el mismo minuto. Distribuir copias de seguridad, importaciones, reportes y mantenimiento reduce picos de uso y facilita identificar cuál tarea generó un problema.
Registrar la salida y los errores
Una tarea silenciosa puede fallar durante días sin que lo notes. Durante las pruebas, enviá su salida a un archivo controlado o configurá una dirección de notificación válida. Un ejemplo sencillo es:
15 3 * * * /ruta/al/comando >> /home/usuario/logs/tarea.log 2>&1
Revisá el tamaño de los registros y aplicá rotación o limpieza. Evitá escribir contraseñas, tokens o datos personales en la salida. Una vez estabilizada la tarea, conservá solamente el nivel de registro necesario.
Diferencia entre el crontab del usuario y el del sistema
crontab -e edita las tareas del usuario conectado. El crontab del sistema y archivos como /etc/crontab pueden incluir un campo adicional para indicar el usuario de ejecución y normalmente requieren privilegios administrativos. En hosting compartido debés trabajar con el crontab de tu cuenta o con la función Cron Jobs de cPanel.
No edites directamente los archivos internos donde cron almacena los crontabs. La orden crontab -e crea una copia temporal, valida el resultado y lo instala de la forma prevista por el sistema.
Verificar que la edición quedó aplicada
Después de cerrar el editor, ejecutá nuevamente:
crontab -l
Comprobá que la nueva línea aparece una sola vez, que no se alteraron tareas anteriores y que los comentarios siguen siendo claros. Luego ejecutá manualmente el comando —sin la expresión de tiempo— con datos de prueba, revisá su salida y confirmá la primera ejecución programada.
Problemas frecuentes
- El editor no abre: verificá que nano o Vim exista y que
EDITORcontenga solo el nombre o la ruta del ejecutable. - “No modification made”: saliste sin guardar o no hubo cambios efectivos.
- La tarea no se ejecuta: revisá la expresión, zona horaria, permisos, rutas absolutas y registros.
- Funciona por SSH pero no en cron: compará variables de entorno, directorio de trabajo e intérprete utilizado.
- Permiso denegado: verificá permisos del script y acceso del usuario a cada directorio de la ruta.
Si necesitás conectarte para realizar estas comprobaciones, consultá primero cómo acceder por SSH a una cuenta de hosting. Con un respaldo, rutas absolutas y una verificación posterior, cambiar el editor de crontab es una operación segura y reversible.