Sus comandos realmente deberían funcionar, sin embargo, no es como lo haría yo.
En su lugar, intente: -
sudo crontab -e -u root
luego a la lista: -
sudo crontab -l -u root
Como regla general, me tomo muchas molestias para nunca ejecutar un shell de root. Cuando lo hago, uso sudo -s
en lugar de sudo su
.
Cuando salga de vi debería ver dos líneas: -
crontab: no crontab for root - using an empty one
crontab: installing new crontab
Si no obtiene esas dos líneas, tiene serios problemas. Si lo haces y luego el comando list no muestra nada, sospecho que hay problemas con los permisos.
Tampoco usaría su línea de ejemplo, ya que está pidiendo al sistema que ejecute "sayhi.sh" una vez por minuto, todo el día, todos los días. También me pregunto acerca de la ruta "/sayhi.sh". ¿Realmente tiene el script en la parte superior de su unidad de arranque? Tampoco es una buena idea o quizás te refieres a "~ / sayhi.sh", que en este caso estaría en el directorio de inicio de root (generalmente / var / root) o te refieres a tu directorio de inicio. En los archivos crontab es mejor codificar explícitamente la ruta completa, independientemente.
También te das cuenta de que la salida tany del trabajo cron no irá a ningún terminal, sino que se enviará por correo electrónico a la raíz (de forma predeterminada).
Si desea comprobar que cron está ejecutando tareas de forma sencilla
*/5 * * * * echo "CRON" > /Users/myname/.cronout
hará eso (el primer campo ejecuta la tarea mucho más razonable cada 5 minutos).
Los propios crontabs se almacenan en / usr / lib / cron / tabs. /usr/lib/cron
es en realidad un enlace a /var/at
y si va allí encontrará el directorio tabs
y también el archivo cron.deny
. Comprueba que nadie haya agregado root a eso y si aún no tienes alegría, puedes intentar:
echo > /var/at/tabs/root
que debería crear un archivo vacío que luego podrás editar.