背景:打包机 C 盘空间一直很紧张,打几次包就报空间不足了,用神器WizTree扫描分析了哈发现是 Jenkins 的工作目录.jenkins和 Gradle 缓存目录.gradle 占用炒鸡大导致
其中的.gradle 中的 111 是我添加故意改名的
想法:看到这两个目录里面的,我想就是把.gradle从 C 盘迁移出去、.gradle里面的 cache 也是可以删除的、daemon里面的 log 也是可以干掉的,.jenkins里面的 workspace项目的.git 版本记录也是可以想哈办法干掉些老分支,job目录里面老的构建记录也可以删除哈;其他的可以去控制面板的程序里面删除一些不需要的 windows 程序
参考:
https://www.bilibili.com/opus/849973091610132488
https://www.cnblogs.com/baiqiantao/p/6890674.html
实操1:配置GRADLE_USER_HOME环境变量把.gradle从 C 盘迁移出去
- 先将 C 盘的.gradle 目录复制到目标盘去,比如我这里是D:\development下,拷贝的可以再 cmd 里面执行
xcopy "C:\Users\xxx\.gradle" "D:\development\.gradle" /E /H /C /I
快速 copy,再依次执行下面操作
我的电脑上右键选择属性
选择高级系统设置
选择环境变量
新建GRADLE_USER_HOME环境变量到新盘的 gradle 根目录 - 我这里用户变量和系统变量都设置了,避免无效,设置之后全部保存后⚠️切记要重启电脑让这个环境变量生效,然后再删除 C 盘的.gradle即可
实操2:删除job目录里面老的构建记录,只保留最后一个记录
@echo off
setlocal enabledelayedexpansion
set "baseFolderPath=%JENKINS_HOME%\jobs"
rem 遍历 jobs 目录下的每个子目录
for /d %%j in ("%baseFolderPath%\*") do (
set "buildsFolder=%%j\builds"
rem 检查 builds 目录是否存在
if exist "!buildsFolder!" (
set "lastFolder="
rem 遍历 builds 目录下的文件夹并按名称排序
for /f "tokens=*" %%i in ('dir /b /ad "!buildsFolder!" ^| sort') do (
if defined lastFolder (
echo DeletingFolder: "!buildsFolder!\!lastFolder!"
rem 删除文件夹及其内容
rmdir /s /q "!buildsFolder!\!lastFolder!"
)
set "lastFolder=%%i"
)
rem 删除最后一个文件夹
if defined lastFolder (
echo NotDeleteLastFolder: "!buildsFolder!\!lastFolder!"
)
)
)
pause
exit
-
这个删除可以设置一个 Jenkins 自动触发,比如我这边是如下:
自动执行设置