最近使用jenkins執行shell指令碼,發現配置好的環境變數無法載入,導致安裝的模組失效,通過查詢資料發現,這是由於jenkins執行指令碼是屬於非互動式和非登陸式shell,詳見
通過檢視環境變數:
env主機命令列執行指令碼:echo $path
lc_*****=zh_cn.utf-8
lc_address=zh_cn.utf-8
lc_monetary=zh_cn.utf-8
term=xterm
shell=/bin/bash
conda_shlvl=1
lc_numeric=zh_cn.utf-8
user=root
lc_telephone=zh_cn.utf-8
ls_colors=rs=0:di=01
sudo_user=gerrit
sudo_uid=1001
conda_exe=/root/anaconda2/bin/conda
username=root
_ce_conda=
path=/root/anaconda2/bin:/root/anaconda2/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
mail=/var/mail/root
lc_identification=zh_cn.utf-8
conda_prefix=/root/anaconda2
pwd=/var/lib/jenkins/workspace/datasystem_test
lang=zh_cn.utf-8
lc_measurement=zh_cn.utf-8
_ce_m=
home=/root
sudo_command=/bin/su
shlvl=2
language=zh_cn:en_us:en
logname=root
lessopen=| /usr/bin/lesspipe %s
conda_default_env=base
sudo_gid=1001
lc_time=zh_cn.utf-8
lessclose=/usr/bin/lesspipe %s %s
lc_name=zh_cn.utf-8
_=/usr/bin/env
/root/anaconda2/bin:/root/anaconda2/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
jenkins執行指令碼:
lc_*****=zh_cn.utf-8
lc_address=zh_cn.utf-8
xdg_session_id=c4
build_url=
lc_monetary=zh_cn.utf-8
hudson_server_cookie=799445fd3d2b12d4
shell=/bin/bash
build_tag=jenkins-datasystem_test-7
lc_numeric=zh_cn.utf-8
job_url=
workspace=/var/lib/jenkins/workspace/datasystem_test
run_changes_display_url=display/redirect?page=changes
user=root
lc_telephone=zh_cn.utf-8
jenkins_home=/var/lib/jenkins
path=/sbin:/home/gerrit/gerrit_site/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
mail=/var/mail/root
run_display_url=display/redirect
lc_identification=zh_cn.utf-8
pwd=/var/lib/jenkins/workspace/datasystem_test
hudson_url=
lang=zh_cn.utf-8
job_name=datasystem_test
lc_measurement=zh_cn.utf-8
lucene=/usr/local/src/lucene-8.0.0
build_display_name=#7
jenkins_url=
build_id=7
job_base_name=datasystem_test
home=/root
shlvl=2
language=zh_cn:en_us:en
executor_number=0
jenkins_server_cookie=799445fd3d2b12d4
node_labels=master
logname=root
hudson_home=/var/lib/jenkins
node_name=master
gerrit_home=/home/gerrit/gerrit_site
job_display_url=display/redirect
build_number=7
xdg_runtime_dir=/run/user/0
hudson_cookie=849cd51f-20da-401b-9274-f0144f1c2f43
lc_time=zh_cn.utf-8
lc_name=zh_cn.utf-8
_=/usr/bin/env
/sbin:/home/gerrit/gerrit_site/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
其中主機執行時:
path=/root/anaconda2/bin:/root/anaconda2/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
jenkins執行時:
path=/sbin:/home/gerrit/gerrit_site/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
對比兩個路徑發現,jenkins路徑中並沒有包含模組路徑。
於是開啟jenkins中manage jenkins ->configure system
在global properties中勾選environment variables ->add ,填寫path,並將主機shell環境的path填入,即可正常執行。
jenkins執行shell啟動tomcat失敗
環境 centos 6.5 jenkins版本 1.6 狀況 整合jenkins bitbucket,構建持續部署。構建完畢,jenkins會執行伺服器某個目錄下的shell,指令碼中功能是複製war包到tomcat目錄下,重啟tomcat。但是,tomcat只是啟動了一下,就關閉了,並沒有啟動to...
jenkins執行shell提示命令不存在
jenkins編譯專案,不繼承linux環境變數 bash profile bashrc etc profile,導致在執行shell指令碼,提示命令找不到!sz hgzx web bin sh xe home jenkins jenkins tomcat temp jenkins348128360...
Shell 入門教程(四) 如何執行shell指令碼
執行 shell 指令碼有兩種方式,一種是通過 bash 命令,一種是作為可執行程式執行。我們寫了下面這樣乙個 shell 指令碼,並將其儲存為hello.sh bin bash echo hello shell.如果我們用bash命令執行,那麼是這樣的 bash hello.sh。執行後會輸出 h...