GNU/Linux >> Linux Esercitazione >  >> Linux

L'esecuzione di crontab non ha le stesse variabili di ambiente dell'utente in esecuzione

Cron funziona sempre con un ambiente per lo più vuoto. HOME , LOGNAME e SHELL sono impostati; e un PATH molto limitato . È quindi consigliabile utilizzare percorsi completi per gli eseguibili ed esportare tutte le variabili necessarie nello script quando si utilizza cron .

Ci sono diversi approcci che puoi usare per impostare le tue variabili d'ambiente in cron , ma equivalgono tutti a impostarlo nel tuo script.

Approccio 1:

Imposta ogni variabile di cui hai bisogno manualmente nel tuo script.

Approccio 2:

Fonte il tuo profilo:

. $HOME/.bash_profile (o . $HOME/.profile )

(Di solito scoprirai che il file sopra fornirà altri file (ad es. ~/.bashrc --> /etc/bashrc --> /etc/profile.d/* ) - in caso contrario, puoi procurarti anche quelli.)

Approccio 3:

Salva le variabili di ambiente in un file (esegui come utente desiderato):

env > /path/to/my_env.sh

Quindi importa tramite il tuo script cron:

env - `cat /path/to/my_env.sh` /bin/sh

Approccio 4:

In alcuni casi, puoi impostare cron globale variabili in /etc/default/cron . C'è comunque un elemento di rischio in questo, poiché questi saranno impostati per tutti i cron posti di lavoro.


Linux
  1. Come impostare una variabile di ambiente sulla riga di comando e farla apparire nei comandi?

  2. La differenza di utilizzo tra variabili Shell e variabili d'ambiente?

  3. Crontab Log:come registrare l'output di My Cron Script

  4. Variabili d'ambiente utente con "su" e "sudo" in Linux

  5. Dove posso impostare le variabili di ambiente che crontab utilizzerà?

Come impostare la variabile d'ambiente in Windows

Come impostare le variabili d'ambiente in MacOS

Come impostare ed elencare le variabili di ambiente in Linux

Come impostare ed elencare variabili ambientali in Linux

Come impostare e annullare l'impostazione delle variabili di ambiente su Linux

Come stampare variabili d'ambiente apparentemente nascoste?