crontab 與 環境變數

2021-07-25 20:41:19 字數 569 閱讀 7601

手動在centos中執行sh指令碼,一切正常;將該sh加入crontab中任務計畫排程之後,完全沒有執行到的感覺啊!

檢視crontab執行記錄日誌,# cat /var/log/cron ,日誌中並沒有執行的記錄,說明計畫任務並沒有被排程執行。

重新編輯計畫任務,# crontab -e,把錯誤輸出重定向,40 10 * * * /home/job.sh 2>> /tmp/log,然後檢視日誌記錄,# cat /tmp/log , 有報錯資訊。

google一把,總結如下:

crontab的定時任務不能執行成功,但是手動執行指令碼能成功。說明不是指令碼本身的問題,推斷可能是crond沒有初始化使用者的環境變數。

解決辦法:

#!/bin/bash

#cd /var/www/yyt/yyt/branches/liulei161228/

. /etc/profile

basepath=$(cd `dirname $0`; pwd)

php $basepath/testresult.php

ok, 這樣,crontab在執行指令碼的時s候,就能夠讀到使用者的環境變數引數啦

crontab環境變數

crontab啟動shell指令碼的環境變數問題 環境 產品,平台,機型,軟體版本,等 aix5l 問題描述 crontab中啟動的shell指令碼不能正常執行,但是使用手動執行沒有問題,在 home profile中設定了指令碼所需要的環境變數。解答 cron命令的預設shell是 usr bin...

crontab 環境變數的使用方法

環境 產品,平台,機型,軟體版本,等 aix5l 問題描述 crontab中啟動的shell指令碼不能正常執行,但是使用手動執行沒有問題,在 home profile中設定了指令碼所需要的環境變數。解答 cron命令的預設shell是 usr bin bsh,如果要在cron啟動的指令碼中使用ksh...

解決crontab不載入環境變數問題

公司需要做異構庫資料同步,由於之前實際使用過,且字段型別也相容,滿足業務場景,使用了阿里開源資料同步工具 datax,伺服器上crontab定時指令碼執行。由於crontab只載入 ect environment,並不載入 etc profile和 bash profile,所以需要在指令碼裡手動新...