SafeChildren Banner

Havoc Oracle Solaris Experts

martes, 15 de septiembre de 2009

Cómo editar el crontab en Solaris

Introducción
Por defecto, el comando crontab -e utiliza la variable de entorno EDITOR para seleccionar el editor a utilizar. Esta variable en Solaris no está establecida y por ello, vamos a ver cómo editar nuestro crontab utilizando vi en vez de ed


Cómo ver el contenido del crontab
Para ver el contenido de nuestro crontab simplemente utilizaremos la opción -l del comando
# crontab -l
#ident "@(#)root 1.21 04/03/23 SMI"
#
# The root crontab should be used to perform accounting data collection.
#
#
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean

Si no hay ninguno asignado, entonces se muestra el siguiente mensaje
$ crontab -l
crontab: no es posible abrir su archivo crontab.
Añadir una entrada
Para incluir una nueva entrada a nuestro crontab, utilizaremos la opción -e del comando. Si no hemos establecido la variable EDITOR entonces utilizará ed por defecto
$ echo $EDITOR

$ crontab -e
0
q
crontab: archivo temporal vacío
Ahora, vamos a exportar EDITOR para que sea vi nuestro editor por defecto
$ export EDITOR=vi
$ crontab -e
"/tmp/crontab0zayNG" 0 líneas, 0 caracteres
~
~
:q!
crontab: archivo temporal vacío
Formato del archivo
El formato del archivo crontab es el siguiente:

Minutos(0-59) Horas(0-23) Dia-de-Mes(1-31) Mes-del-Año(1-12) Día-de-la-Semana(0-6)

Por ejemplo, si queremos que el comando iostat -x > /var/report se ejecute cada hora de lunes a viernes, haremos lo siguiente
# export EDITOR=vi
# crontab -e
#M H D M DD CMD
00 * * * 1,2,3,4,5 /usr/bin/iostat -x > /var/report.txt
:wq

# crontab -l
#ident "@(#)root 1.21 04/03/23 SMI"
#
# The root crontab should be used to perform accounting data collection.
#
#
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___
#
#M H D M DD CMD
00 * * * 1,2,3,4,5 /usr/bin/iostat -x > /var/report.txt

Los comentarios empiezan por # como siempre. A diferencia de Linux */n no significa que se repita cada n, en Solaris hay que poner el formato de UNIX SVR

Cómo evitar que un usuario edite su crontab
Para ello, simplemente incluiremos el login en el archivo cron.deny que se encuentra en /etc/cron.d
# cd /etc/cron.d
# cat cron.deny
daemon
bin
nuucp
listen
nobody
noaccess
# echo "oracle" >> cron.deny
# su - oracle
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
$ crontab -e
crontab: no está autorizado para utilizar cron.


No hay comentarios:

Publicar un comentario