Shell interativo com ambiente idêntico ao cron


10

Estou ciente de muitas armadilhas no mundo mágico dos crontabs, mas às vezes isso ajuda bastante na solução de problemas quando você tem uma maneira inteligente de inserir um shell interativo (bash) com um ambiente exatamente idêntico ao de um script de shell ser executado a partir de um crontab.

Agora eu pensei /bin/openvt -c8 -- /bin/bash --noprofile -l, mas requer privilégios de root, define muitas variáveis ​​e um simples su myusernamedefine muito ambiente extra.

Alguém conhece uma maneira de iniciar um shell bash interativo com ambiente idêntico ao cron e sem exigir privilégios de root no Kubuntu?

Bônus quando funciona em uma sessão ssh, na GUI e em um ou mais dos seguintes SOs: HP-UX, Solaris e AIX

Respostas:


14

Execute crontab -ee adicione uma entrada com

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

(se estiver no Solaris ou em um sistema que não use um shell POSIX para interpretar essa linha de comando, use /usr/xpg4/bin/sh -c 'export -p > ~/cron-env'ou qualquer que seja o caminho para o padrão shnesse sistema).

Aguarde um minuto e remova essa linha.

Agora você deve ter um cron-envarquivo em seu diretório pessoal.

Você pode então executar:

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

Para iniciar um shell com o mesmo ambiente que seu trabalho cron.


Interessante, verificará quando eu voltar dentro de uma hora.
jippie

Brilhante, funciona como um sonho!
jippie

Excelente resposta. Eu votaria mais de uma vez, se pudesse.
Sukima 19/08/19

2

Cron não é um shell interativo, então esse é seu primeiro problema. É principalmente ignorável embora.

O verdadeiro é: variáveis ​​de ambiente. Olhe os cabeçalhos de um cron mail para encontrá-los, depois defina variáveis ​​no shell para combiná-los e desmarque todas as variáveis ​​restantes.

Agora você está bem próximo de um ambiente como o cron o vê.


Nunca percebeu os cabeçalhos de email que continham parte do ambiente; por padrão, o Thunderbird os oculta do usuário. Infelizmente, os cabeçalhos não representam o ambiente completo.
jippie
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.