Shell interattiva con ambiente identico a cron


10

Sono a conoscenza di molte insidie ​​nel magico mondo dei crontab, ma a volte sarebbe di grande aiuto risolvere i problemi quando si ha un modo intelligente per entrare in una shell interattiva (bash) con un ambiente identico esatto come quando uno script di shell viene eseguito da un crontab.

Ora mi sono pensato /bin/openvt -c8 -- /bin/bash --noprofile -l, ma richiede i privilegi di root, imposta troppe variabili e un semplice su myusernameimposta un sacco di ambiente extra.

Qualcuno conosce un modo per avviare una shell bash interattiva con un ambiente identico al cron e che non richiede i privilegi di root su Kubuntu?

Bonus quando funziona in una sessione ssh, nella GUI e anche su uno o più dei seguenti SO: HP-UX, Solaris e AIX

Risposte:


14

Esegui crontab -ee aggiungi una voce con

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

(se su Solaris o un sistema che non utilizza una shell POSIX per interpretare quella riga di comando, utilizzare /usr/xpg4/bin/sh -c 'export -p > ~/cron-env'o qualunque sia il percorso dello standard shsu quel sistema).

Aspetta un minuto e rimuovi quella linea.

Ora dovresti avere un cron-envfile nella tua home directory.

È quindi possibile eseguire:

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

Per avviare una shell con lo stesso ambiente del tuo cron job ottenuto.


Interessante, lo controllerò quando torno tra circa un'ora.
jippie,

Fantastico, funziona come un sogno!
jippie,

La risposta più eccellente. Vorrei votare più di una volta se potessi.
Sukima,

2

Cron non è una shell interattiva, quindi è il tuo primo problema. È per lo più ignorabile però.

La cosa vera è: variabili d'ambiente. Guarda le intestazioni di una cron mail per trovarle, quindi imposta le variabili nella tua shell per abbinarle e disattiva tutte le restanti variabili.

Ora sei abbastanza vicino a un ambiente come lo vede cron.


Non ho mai notato le intestazioni di posta contenenti parte dell'ambiente, per impostazione predefinita Thunderbird le nasconde all'utente. Le intestazioni purtroppo non rappresentano un ambiente completo completo.
jippie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.