Linux crontab中不能執(zhí)行Python腳本

Linux crontab中不能執(zhí)行Python腳本

歡迎訪問個人博客

>>摘要

在Linux下的crontab定時執(zhí)行shell腳本和Python的時候存在一定的問題,導致某些系統(tǒng)變量取不到,以至于定時計劃不能很好的執(zhí)行。究其原因是因為crontab不能取到全部的環(huán)境變量


>>依賴環(huán)境

[root@i-vowirco9 bin]# cat /etc/redhat-release
CentOS release 6.8 (Final)

[root@i-vowirco9 bin]# python -V
Python 2.6.6

[root@i-vowirco9 bin]# pip -V
pip 9.0.1 from /usr/lib/python2.6/site-packages/pip-9.0.1-py2.6.egg (python 2.6)

>>驗證crontab取到的環(huán)境變量

全新主機上面編寫如下shell腳本測試crontab服務可獲取到的環(huán)境變量

## 腳本內容

vim  /root/bin/test_crontab_env.sh

    #!/usr/bin/env bash
    #-*- coding: utf-8 -*-
    #Author: Colin
    #Date: 2017-05-12
    #Desc: 測試crontab服務可獲取到的環(huán)境變量
    #

    /usr/bin/env > /tmp/colin_env.log


## 賦權限

    chmod a+x /root/bin/test_crontab_env.sh

配置crontab定制執(zhí)行

## 配置crontab

crontab -e

    */2 * * * * /root/bin/test_crontab_env.sh


兩分鐘之后查看/tmp/colin_env.log日志

[root@i-vowirco9 bin]# cat /tmp/colin_env.log
SHELL=/bin/sh
USER=root
PATH=/usr/bin:/bin
_=/usr/bin/env
PWD=/root
LANG=en_US.utf8
HOME=/root
SHLVL=2
LOGNAME=root
LC_CTYPE=en_US.utf8



從上面的結果可以看到,crontab運行環(huán)境中取到的系統(tǒng)環(huán)境變量少之又少


>>解決之道

>>>用Shell執(zhí)行Python腳本

示例如下:

## 配置所需系統(tǒng)變量
[root@i-vowirco9 bin]# tail -2 /etc/profile
## add for test
export COLINNAME='Colin'


## 測試腳本

    vim /root/bin/get_crontab_variable.sh
    #!/usr/bin/env bash
    #-*- coding: utf-8 -*-
    #Author: Colin
    #Date: 2017-05-12
    #Desc: 測試crontab服務獲取指定的變量
    #

    ## 關鍵所在
    source /etc/profile

    echo "The given variable is: ${COLINNAME}" > /tmp/colin_env_profile.log

## 執(zhí)行腳本

    crontab 配置執(zhí)行腳本,觀察輸出日志內容

    cat /tmp/colin_env_profile.log

        The given variable is: Colin

## 備注
        
    如果注釋小 source 所在行,執(zhí)行腳本僻爽,則獲取不到COLINNAME變量值

    cat /tmp/colin_env_profile.log

        The given variable is:

>>>crontab 配置所需變量

示例如下:


## 在crontab中直接配置變量 如下

    [root@i-vowirco9 bin]# crontab -l |head -1
    COLINNAME='Colin'

## 測試腳本 /root/bin/get_crontab_variable_v2.sh 只有一行內容,注意沒有source那行

    [root@i-vowirco9 bin]# cat get_crontab_variable_v2.sh
    #!/usr/bin/env bash
    #-*- coding: utf-8 -*-
    #Author: Colin
    #Date: 2017-05-12
    #Desc: 測試crontab服務獲取指定的變量
    #

    echo "The given variable is: ${COLINNAME}" > /tmp/colin_env_crontab.log

## 執(zhí)行腳本

    crontab 配置執(zhí)行腳本贾惦,觀察輸出日志內容

    cat /tmp/colin_env_crontab.log

        The given variable is: Colin

----------------------------------------------更多精彩請關注-------------------------------------

公眾號: DailyJobOps

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末胸梆,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子须板,更是在濱河造成了極大的恐慌碰镜,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件习瑰,死亡現場離奇詭異绪颖,居然都是意外死亡,警方通過查閱死者的電腦和手機甜奄,發(fā)現死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門柠横,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窃款,“玉大人,你說我怎么就攤上這事牍氛〕考蹋” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵搬俊,是天一觀的道長紊扬。 經常有香客問我,道長唉擂,這世上最難降的妖魔是什么餐屎? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮玩祟,結果婚禮上啤挎,老公的妹妹穿的比我還像新娘。我一直安慰自己卵凑,他們只是感情好,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布胜臊。 她就那樣靜靜地躺著勺卢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茎截。 梳的紋絲不亂的頭發(fā)上蜕提,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天席舍,我揣著相機與錄音,去河邊找鬼甫煞。 笑死,一個胖子當著我的面吹牛冠绢,可吹牛的內容都是我干的抚吠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼弟胀,長吁一口氣:“原來是場噩夢啊……” “哼楷力!你這毒婦竟也來了?” 一聲冷哼從身側響起孵户,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤萧朝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后夏哭,有當地人在樹林里發(fā)現了一具尸體检柬,經...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年竖配,在試婚紗的時候發(fā)現自己被綠了何址。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片里逆。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖头朱,靈堂內的尸體忽然破棺而出运悲,到底是詐尸還是另有隱情,我是刑警寧澤项钮,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布班眯,位于F島的核電站,受9級特大地震影響烁巫,放射性物質發(fā)生泄漏署隘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一亚隙、第九天 我趴在偏房一處隱蔽的房頂上張望磁餐。 院中可真熱鬧,春花似錦阿弃、人聲如沸诊霹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脾还。三九已至,卻和暖如春入愧,著一層夾襖步出監(jiān)牢的瞬間鄙漏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工棺蛛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留怔蚌,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓旁赊,卻偏偏與公主長得像桦踊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子彤恶,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數據革命閱讀 12,146評論 2 34
  • Linux定時任務Crontab命令詳解 linux 系統(tǒng)則是由 cron (crond) 這個系統(tǒng)服務來控制的钞钙。...
    孫燕超閱讀 1,815評論 0 4
  • 前言 ||| 第二章 使用ArcPy編寫腳本 Python支持大部分在其他語言中出現的編程結構。在本章內容中声离,我們...
    muyan閱讀 90,001評論 10 55
  • 前一天學習了 at 命令是針對僅運行一次的任務芒炼,循環(huán)運行的例行性計劃任務,linux系統(tǒng)則是由 cron (cro...
    Zcclucky閱讀 574評論 0 0
  • 我和女朋友吵架了,吵得很兇,砸了各種東西子寓,看來這次是無可挽回暗挑,非分手不可了…… 然后我醒了,舒了一口氣——還好是場...
    漫漫尋閱讀 239評論 1 5