Shell - crontab 定时 git 拉取并执行 maven 打包
创始人
2024-05-31 22:14:33
0

目录

一.引言

二.踩坑与实践

1.原始代码

2.mvn package 未执行与解决 [导入环境变量]

3.git pull 未执行与解决 [添加绝对路径]

三.总结


一.引言

git 任务部署在通道机,每天6点需要定时更新 jar 包并打包上线,所以需要在 linux 服务器上:

A.部署 maven: 上一篇文章已经铺了完整过程:Linux 服务器 Maven 环境安装与测试

B.部署 git: 机器上已经有 git,所以省略了这一步,大家没有 git 可以搜索一下安装过程

C.crontab: 定时 git pull + mvn package,本文主要进行第三步实践。

二.踩坑与实践

1.原始代码

# 进入目标环境
echo `date`
echo cd 目录
cd $targetPath# 更新代码
echo git 更新
git pull# 重新打包
echo package...
sh $targetPath/package.sh

将代码添加至 corontab 并将输出流指向 log,发现到点后只有 echo 的日志,没有 pull 和 package 的日志:

Fri Mar 10 14:13:01 CST 2023
cd 目录
git 更新
package...

2.mvn package 未执行与解决 [导入环境变量]

package.sh 内部逻辑很简单即 mvn clean package 但是没有执行,通过网上查询发现是因为自己没有添加环境变量导致,在脚本前端增加 source 语句引入环境变量:

source /etc/profile
source /etc/bashrc

添加后发现重定向的 log 中 mvn package 信息已经正常输出,但是依旧不见 git 日志:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:57 min (Wall Clock)
[INFO] Finished at: 2023-03-10T14:16:00+08:00
[INFO] ------------------------------------------------------------------------

3.git pull 未执行与解决 [添加绝对路径]

上面明明已经添加了环境变量为什么 git 不生效呢,我们查看了一下 $PATH:

/usr/local/bin

再使用 whereis git 查看下 git 的位置:

git: /usr/bin/git /usr/share/man/man1/git.1.gz

git 在 /usr/bin 下,PATH 是 /usr/local/bin 所以 git 没找到,这里直接在脚本中指定为绝对路径:

source /etc/profile
source /etc/bashrc# 进入目标环境
echo `date`
echo cd 目录
cd $targetPath# 更新代码
echo git 更新
/usr/bin/git pull# 重新打包
echo package...
sh package.sh

再次添加至 crontab,这次终于有 git 的日志了:

Fri Mar 10 14:20:01 CST 2023
cd 目录
git 更新
Already up-to-date.
package...

三.总结

好久不写 shell 脚本,这么简单的逻辑搞了小半天实在不应该,深刻反思:

- shell 脚本一定要添加环境变量

- 添加环境变量找不到就用 whereis xxx 查找对应的绝对路径,下面是常用到的:

whereis java
whereis python
whereis maven

相关内容

热门资讯

95年苏州中考作文范文29篇... 95年苏州中考作文范文29篇 篇一:探索未知的世界在我们的生活中,有许多未知的领域等待我们去探索。人...
中考语文题作文范文大全【精选... 中考语文题作文范文大全 篇一题目:我的梦想梦想是每个人内心深处的火花,它能够给我们带来无限的力量和动...
中考满分作文:歉疚   中考满分作文:歉疚  父母,一个温馨的名词;亲情,一段动人的旋律,无论时间如何推移,亘古不变的是...
中考英语复习重要短语   重要的短语、句型和惯用法  1. get on/off(the bus) 上/下车 get up...
常见中考作文母题以及范文【优... 常见中考作文母题以及范文 篇一如何保护环境保护环境是我们每个人的责任。随着工业化的发展和人口的增加,...
我喜欢的一本书作文初二【优秀... 我喜欢的一本书作文初二 篇一《鲁滨逊漂流记》《鲁滨逊漂流记》是我非常喜欢的一本书。这本书是由英国作家...
杭州市中考时间表【精彩3篇】 杭州市中考时间表 篇一杭州市中考时间表已发布,为了帮助考生和家长做好准备,以下是关于杭州市中考时间表...
2011年中考作文【经典3篇... 2011年中考作文 篇一我的梦想我的梦想是成为一名优秀的科学家。科学是一门神奇的学科,它可以帮助我们...
我们的初中生活作文(优选3篇... 我们的初中生活作文 篇一初中生活是人生中一个重要的阶段,对于每个学生来说都是难忘的。我也有着属于自己...
同桌的五大酷刑初二作文(推荐... 同桌的五大酷刑初二作文 篇一同桌的五大酷刑初二作文初中生活中,一个人最常接触到的人就是同桌了。同桌对...
八年级作文800字民族团结【... 八年级作文800字民族团结 篇一民族团结的重要性民族团结是指不同民族之间相互尊重、和谐相处的一种状态...
再一次遇见初二作文【优质6篇... 再一次遇见初二作文 篇一初二的时光,仿佛就在昨天。那些快乐、烦恼、成长、友情,都深深地刻在我心底。如...
初二作文:在那梦想放飞的地方... 初二作文:在那梦想放飞的地方 篇一在那梦想放飞的地方每个人都有自己的梦想,而在梦想放飞的地方,我们可...
什么的滋味初二作文(实用6篇... 什么的滋味初二作文 篇一初中生活的滋味初中生活,是我们人生中一段难忘而充实的时光。在这三年里,我们经...
走出校园初中作文初二7篇【通... 走出校园初中作文初二7篇 篇一:我的暑假计划初二暑假即将到来,我计划走出校园,积极参与各种有益的活动...
认识自己初二写人作文(精彩3... 认识自己初二写人作文 篇一:我与自己的相识我是一个初二的学生,但我却认识自己的时间并不长。以前,我总...
我看了一本好书初二水平作文8... 我看了一本好书初二水平作文800字 篇一《红楼梦》是我最近读的一本好书。这是一部中国古典小说,被誉为...
难忘你的眼神作文开头初二【实... 难忘你的眼神作文开头初二 篇一那是一个阳光明媚的春天,我和我的好朋友小明一起去参加学校的春游活动。我...
不为人知的我初中作文(推荐3... 不为人知的我初中作文 篇一我内心的小宇宙每个人都有一个内心的世界,那是一个只属于自己的空间。而我,作...
父亲的“雪花”初二作文【精彩... 父亲的“雪花”初二作文 篇一父亲的“雪花”我叫李明,今年初二。今天,我想给大家讲一个关于我的父亲的故...