Shell interactivo con entorno idéntico al cron


10

Soy consciente de muchas trampas en el mundo mágico de los crontabs, pero a veces ayudaría mucho a solucionar problemas cuando tienes una forma inteligente de ingresar a un shell interactivo (bash) con un entorno idéntico como cuando se ejecuta un script de shell desde un crontab.

Ahora pensaba en mí /bin/openvt -c8 -- /bin/bash --noprofile -l, pero requiere privilegios de root, establece demasiadas variables y un simple su myusernameestablece un montón de entorno adicional.

¿Alguien sabe de una manera de iniciar un shell bash interactivo con un entorno idéntico a cron y que no requiera privilegios de root en Kubuntu?

Bonificación cuando funciona en una sesión ssh, en la GUI y también en uno o más de los siguientes sistemas operativos: HP-UX, Solaris y AIX

Respuestas:


14

Ejecute crontab -ey agregue una entrada con

* * * * * export -p > ~/cron-env

(si está en Solaris o en un sistema que no usa un shell POSIX para interpretar esa línea de comando, use /usr/xpg4/bin/sh -c 'export -p > ~/cron-env'o lo que sea la ruta al estándar shen ese sistema).

Espera un minuto y elimina esa línea.

Ahora debería tener un cron-envarchivo en su directorio de inicio.

Luego puedes ejecutar:

cd && env -i sh -c '. ./cron-env; exec sh'

Para iniciar un shell con el mismo entorno que obtuvo su trabajo cron.


Interesante, lo comprobaré cuando regrese en aproximadamente una hora.
jippie

¡Brillante, funciona como un sueño!
jippie

La respuesta más excelente. Votaría más de una vez si pudiera.
Sukima

2

Cron no es un shell interactivo, así que ese es tu primer problema. Sin embargo, es en su mayoría ignorable.

Lo real es: variables de entorno. Mire los encabezados de un correo cron para encontrarlos, luego configure las variables en su shell para que coincidan y desarme todas las variables restantes.

Ahora estás bastante cerca de un entorno como lo ve cron.


Nunca noté los encabezados de correo que contienen parte del entorno, de forma predeterminada Thunderbird los oculta al usuario. Los encabezados lamentablemente, no representan completar el entorno completo.
jippie
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.