Ten*_*ers 5 shell disk-usage filenames jenkins
Jenkins 已停止构建,我可以从 df 中看到:/var 已达到最大值。在此之后,我可以看到罪魁祸首是 /var/lib/jenkins
52K alternatives
...
4.0K games
2.3G jenkins <--this one
4.0K logrotate.status
...
12M yum
2.4G total
Run Code Online (Sandbox Code Playgroud)
但是,当我进入 jenkins 目录查看哪个文件夹消耗了这 2.3GB 的大部分时,出现了一些奇怪的结果:
$ sudo du -csh *
16K config.xml
0 Connection Activity monitoring to slaves.log
0 Download metadata.log
0 Fingerprint cleanup.log
7.3M fingerprints
4.0K hudson.maven.MavenModuleSet.xml
4.0K hudson.model.UpdateCenter.xml
4.0K hudson.scm.CVSSCM.xml
4.0K hudson.scm.SubversionSCM.xml
4.0K hudson.tasks.Ant.xml
4.0K hudson.tasks.Mailer.xml
4.0K hudson.tasks.Maven.xml
4.0K hudson.tasks.Shell.xml
4.0K hudson.triggers.SCMTrigger.xml
4.0K identity.key.enc
4.0K jenkins.diagnostics.ooom.OutOfOrderBuildMonitor
4.0K jenkins.model.ArtifactManagerConfiguration.xml
4.0K jenkins.model.DownloadSettings.xml
4.0K jenkins.model.JenkinsLocationConfiguration.xml
4.0K jenkins.mvn.GlobalMavenConfig.xml
4.0K jenkins.security.QueueItemAuthenticatorConfiguration.xml
160M jobs
4.0K nodeMonitors.xml
12K Out of order build detection.log
41M plugins
4.0K proxy.xml
4.0K queue.xml.bak
4.0K secret.key
0 secret.key.not-so-secret
32K secrets
1.1M updates
8.0K userContent
12K users
4.0K Workspace clean-up.log
209M total
Run Code Online (Sandbox Code Playgroud)
从 2.3GB 到 209M。谁能解释一下,这样我就可以创造一些空间?我已经从 Web 前端删除了 Jenkins 工作区,但仍然看到这个结果。
有了这个命令,
sudo du -csh *
Run Code Online (Sandbox Code Playgroud)
您缺少隐藏目录,即*
扩展到所有以点 ( .
)开头的名称。这意味着所有以点开头的目录名称都不会传递给du
命令,并且不会考虑它们的大小。
在大多数情况下,添加.??*
到参数将满足需要:
sudo du -csh .??* *
Run Code Online (Sandbox Code Playgroud)
额外的.??*
是扩展到所有以点开头并具有两个以上字符的名称。目标是..
从参数中排除,即父目录。
假设的文件和目录.a
仍然会被遗漏,那些以破折号 ( -
)开头的文件和目录充其量会被忽略,最坏的情况是会触发错误。
如果您的文件或目录名称以破折号开头或名称以点开头后跟单个字符,则此增强版本将正确报告所有目录大小:
sudo du -csh -- .[^.] .??* *
Run Code Online (Sandbox Code Playgroud)
这里的意思--
是du
将以破折号开头的参数作为名称,而不是选项,.[^.]
并将所有文件和目录添加到已处理的名称中,所有文件和目录以点开头,后跟除点以外的任何单个字符。这包括文件和目录的所有可能名称。
几个 shell 为这些命名问题提供了自定义的解决方法:
bash
:
shopt -s dotglob
sudo du -csh -- *
Run Code Online (Sandbox Code Playgroud)
zsh
:
sudo du -csh -- *(D)
Run Code Online (Sandbox Code Playgroud)
ksh93
:
FIGNORE='@(.|..)'
sudo du -csh -- *
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7388 次 |
最近记录: |