一、背景描述
上一篇文章 【Jenkins学习 】解决Jenkins节点断开不可用,报错:Disk space is too low. Only 0.803GB left on /tmp. 里面说了,因为 / 根目录磁盘空间不足导致Jenkins编译节点服务器不可用。
在这里插入图片描述查看下 / 根目录下面有哪些占用磁盘比较大的内容,如下所示:
[root@localhost /]# du -h --max-depth=1 /
4.0K /mnt
7.7M /bin
0 /net
4.0K /home
8.6G /root
0 /selinux
343G /data
291M /glibc-build-2.14
41M /lib64
4.0K /media
0 /misc
232K /dev
4.2G /usr
155M /lib
16K /lost+found
3.5G /opt
29M /boot
39M /etc
784K /tmp
20M /sbin
812M /var
0 /cgroup
146M /glibc-2.18
du: 无法访问"/proc/13912/task/13912/fd/4": 没有那个文件或目录
du: 无法访问"/proc/13912/task/13912/fdinfo/4": 没有那个文件或目录
du: 无法访问"/proc/13912/fd/4": 没有那个文件或目录
du: 无法访问"/proc/13912/fdinfo/4": 没有那个文件或目录
0 /proc
136M /glibc-2.14
12K /.dbus
4.0K /srv
0 /sys
360G /
在这里插入图片描述
看下 /root目录下有什么
[root@localhost /]# du -h --max-depth=1 /root
4.0K /root/文档
4.0K /root/视频
4.0K /root/模板
144K /root/.pulse
36K /root/bin
8.0K /root/.pki
4.0K /root/.gvfs
48K /root/.config
4.0K /root/.nautilus
188K /root/.cache
144K /root/.local
384K /root/.gstreamer-0.10
211M /root/桌面
256K /root/.m2
24K /root/.repoconfig
32K /root/.gnome2
8.0K /root/.ssh
80K /root/.gconfd
4.0K /root/下载
4.0K /root/.abrt
3.9G /root/.android
16K /root/.gnote
4.0K /root/音乐
12K /root/.dbus
284K /root/.gconf
16K /root/.gnupg
4.0K /root/图片
40M /root/.jenkins
4.0K /root/公共的
4.5G /root/.gradle
4.0K /root/software
8.6G /root
[root@localhost /]#
在这里插入图片描述
二 .gradle目录
2.1 顶级目录
进入 /root/.gradle目录查看下,如下所示:
在这里插入图片描述
[root@localhost /]# cd /root/.gradle/
[root@localhost .gradle]# ll
总用量 16
drwxr-xr-x. 12 root root 4096 8月 1 19:37 caches
drwxr-xr-x. 7 root root 4096 7月 4 11:34 daemon
drwxr-xr-x. 6 root root 4096 4月 18 2018 native
drwxr-xr-x. 2 root root 4096 4月 18 2018 workers
[root@localhost .gradle]#
分为caches 、daemon 、native 、wrapper 四个目录,如下所示:
目录 | 功能 |
---|---|
caches | gradle缓存目录 |
daemon | daemon日志目录 |
native | gradle平台相关目录 |
workers | 未知,我这边是空目录 |
2.2 caches目录
下面来看一看 caches目录的情况,如下所示:
[root@localhost .gradle]# cd caches/
[root@localhost caches]# ll
总用量 40
drwxr-xr-x. 9 root root 4096 12月 14 2017 2.14.1
drwxr-xr-x. 6 root root 4096 5月 14 15:17 3.0
drwxr-xr-x. 6 root root 4096 4月 11 2018 3.3
drwxr-xr-x. 9 root root 4096 4月 18 2018 4.1
drwxr-xr-x. 8 root root 4096 7月 4 11:34 4.3
drwxr-xr-x. 10 root root 4096 8月 1 19:37 external-resources
drwxr-xr-x. 2 root root 4096 4月 11 2018 jars-2
drwxr-xr-x. 2 root root 4096 4月 18 2018 jars-3
drwxr-xr-x. 7 root root 4096 7月 4 11:34 modules-2
drwxr-xr-x. 4 root root 4096 4月 18 2018 transforms-1
[root@localhost caches]#
在这里插入图片描述
目录 | 功能 | |
---|---|---|
2.14.1 | gradle程序的脚本(gradle程序版本) | |
3.0 | gradle程序的脚本(gradle程序版本) | |
3.3 | gradle程序的脚本(gradle程序版本) | |
4.1 | gradle程序的脚本(gradle程序版本) | |
4.3 | gradle程序的脚本(gradle程序版本) | |
external-resources | 未知 | |
jars-2 | 未知 | |
jars-3 | 未知 | |
modules-2 | 下载缓存目录 | |
transforms-1 | 好像是下载缓存目录 |
2.2.1 caches/modules-2目录
在这里插入图片描述目录 | 功能 |
---|---|
files-2.1 | gradle下载的jar目录 |
metadata-2.16 | gradle-2.14.1的描述文件 (不确定) |
metadata-2.23 | gradle-3.2.1的描述文件 (不确定) |
... | ... |
files-2.1的目录组织
{package}/{shanum1}/{org}/{version}/{package-version}.jar
{package}/{shanum2}/${package-version}.aar
例如: com.android.support:recyclerview-v7:27.1.1.aar对应的缓存为:
/root/.gradle/caches/modules-2/files-2.1/com.android.support/recyclerview-v7/27.1.1/3e9da1c78ef9fac192ff9e614b1c8e943cd9dd89/recyclerview-v7-27.1.1.aar
描述文件 recyclerview-v7-27.1.1.pom 对应着
在这里插入图片描述/root/.gradle/caches/modules-2/files-2.1/com.android.support/recyclerview-v7/27.1.1/bf17224266bac78bb12fe4089fb1654eaa370af7/recyclerview-v7-27.1.1.pom
lint-gradle-api-26.0.1.jar 对应着:
/root/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-api/26.0.1/2d4dd9f4676fbb152e4baf6f6f4cbbb868521832/lint-api-26.0.1.jar
描述文件 lint-api-26.0.1.pom 对应着
/root/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-api/26.0.1/939c08ec1fd74659d4a47d849d0376e1b1b88988/lint-api-26.0.1.pom
在这里插入图片描述2.3 daemon目录(无需离线)
用于存放gradle daemon的运行日志。按gradle程序版本存放。
[root@localhost .gradle]# cd daemon/
[root@localhost daemon]# ll
总用量 92
drwx------. 2 root root 4096 9月 18 14:18 2.14.1
drwx------. 2 root root 4096 5月 14 15:17 3.0
drwx------. 2 root root 4096 4月 11 2018 3.3
drwx------. 2 root root 73728 11月 7 14:40 4.1
drwx------. 2 root root 4096 9月 20 14:09 4.3
在这里插入图片描述
目录 | 功能 |
---|---|
2.14.1 | gradle-2.14.1运行的日志 |
3.0 | gradle-3.0运行的日志 |
3.3 | gradle-3.3运行的日志 |
4.1 | gradle-4.1运行的日志 |
4.3 | gradle-4.3运行的日志 |
2.4 native目录(无需离线)
用于存放平台相关(Win/Linux/Mac)的库。
[root@localhost 4.3]# cd ../../native/
[root@localhost native]# pwd
/root/.gradle/native
[root@localhost native]# ll
总用量 16
drwxr-xr-x. 3 root root 4096 12月 14 2017 19
drwxr-xr-x. 4 root root 4096 4月 11 2018 23
drwxr-xr-x. 4 root root 4096 4月 18 2018 25
drwxr-xr-x. 3 root root 4096 4月 11 2018 jansi
[root@localhost native]#
在这里插入图片描述
目录 | 功能 |
---|---|
19 | gradle-2.14.1对应的lib目录,按平台存放,如osx-amd64 |
21 | gradle-3.2.1对应的lib目录,按平台存放,如osx-amd64 |
jansi | 未知,看目录也是存放一些so |
[root@localhost 4.3]# cd ../../native/
[root@localhost native]# pwd
/root/.gradle/native
[root@localhost native]# ll
总用量 16
drwxr-xr-x. 3 root root 4096 12月 14 2017 19
drwxr-xr-x. 4 root root 4096 4月 11 2018 23
drwxr-xr-x. 4 root root 4096 4月 18 2018 25
drwxr-xr-x. 3 root root 4096 4月 11 2018 jansi
[root@localhost native]# cd 19/
[root@localhost 19]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 12月 14 2017 linux-amd64
[root@localhost 19]# cd linux-amd64/
[root@localhost linux-amd64]# ll
总用量 56
-rw-r--r--. 1 root root 21873 12月 14 2017 libnative-platform-curses.so
-rw-r--r--. 1 root root 1 12月 14 2017 libnative-platform-curses.so.lock
-rw-r--r--. 1 root root 23965 12月 14 2017 libnative-platform.so
-rw-r--r--. 1 root root 1 12月 14 2017 libnative-platform.so.lock
[root@localhost linux-amd64]#
[root@localhost linux-amd64]# cd ../../jansi/
[root@localhost jansi]# ll
总用量 4
drwxr-xr-x. 3 root root 4096 4月 11 2018 1.14
[root@localhost jansi]# cd 1.14/
[root@localhost 1.14]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 4月 11 2018 linux64
[root@localhost 1.14]# cd linux64/
[root@localhost linux64]# ll
总用量 56
-rw-r--r--. 1 root root 54754 4月 11 2018 libjansi.so
[root@localhost linux64]#
2.5 work目录
work目录的作用未知,这边看起来是空目录。
在这里插入图片描述三、修改Gradle缓存文件夹路径
既然已经大概了解了.gradle目录的结构,而且/ 根目录磁盘已经不够用了,我们就需要将.gradle目录迁移到其他的地方去,修改Gradle缓存文件夹路径,以后缓存不要缓存到 / 根目录即可。
3.1 设置GRADLE_USER_HOME环境变量
新建一个环境变量设置,GRADLE_USER_HOME,然后写上值为你需要迁移的地方去。
在/etc/profile增加如下:
export GRADLE_USER_HOME=你想要迁移的地址
示例如下:
输入vi命令,编辑/etc/profile文件
[root@localhost workers]# vi /etc/profile
在这里插入图片描述
我们看到原来其他的SDK、gradle等目录也是在/根目录下,后面都移动到了/data目录下,因此我们将GRADLE_USER_HOME从原来的 ~/root/.gradle 也移动到 /data目录下,如下所示
添加 export GRADLE_USER_HOME=/data/opt/.gradle
[root@localhost .gradle]# vi /etc/profile
[root@localhost .gradle]# source /etc/profile
编辑完之后,使用 source /etc/profile
命令使修改生效。
修改完后,将原来的老目录删除即可。
在这里插入图片描述
这样 / 根目录 的可用磁盘空间就充裕了一些,这就是修改Gradle缓存文件夹路径的方法。
在这里插入图片描述
在这里插入图片描述作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:https://blog.csdn.net/qq446282412/article/details/83821204
如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。
网友评论