我想从我的 Jenkinsnodes 打印出目录的大小
我的脚本:
import hudson.node_monitors.*
import hudson.slaves.*
import Jenkins.*
jenkins = Jenkins.instance
for (slave in jenkins.nodes) {
wsRoot = slave.getWorkspaceRoot()
println( "Nodename: " + slave.getNodeName() )
for (dir in wsRoot.list()) {
println("---------------------------------------------------------")
println(" dirname: " + dir )
println(" dirspace: " + dir.length() )
}
}
但是使用这个脚本,我得到大小为“0”(如果 dir 为空)或“4096”的大小为 28mb 的 dir。
我尝试使用 File
for (dir in wsRoot.list()) {
println("-------------------------------------------------------")
println(" dirname: " + dir )
File DirFiles = new File(dir.toString())
def sampleDirSize = DirFiles.directorySize()
println(" DirSpace: " + sampleDirSize )
}
但在这里我得到了错误:
java.io.FileNotFoundException: /home/jenkins/C:\Jenkins-Slave\jars\workspace\Testprojekt
因为主节点是 Linux 服务器,而某些节点是 Windows 服务器,这会创建错误的文件位置。
是否有解决方案以 mb 为所有节点显示正确的 dir 大小?