Linux Jenkins测试windows共享中是否存在文件

Linux Jenkins测试windows共享中是否存在文件,linux,jenkins,groovy,jenkins-pipeline,Linux,Jenkins,Groovy,Jenkins Pipeline,我有一个主Linux Jenkins服务器。我需要使用管道测试远程windows共享上是否存在文件 有没有一个简单的方法可以做到这一点?我了解到“fileExists”只适用于本地工作区,所以这是不好的 这可能吗?或者我需要使用sh命令来执行一些魔术吗 谢谢 Craig如果您已经安装在Jenkins服务器上,您可以尝试以下方法 $ lftp -c "open sftp://hostname_remote_windows_system ; find file_to_be_found.txt" 请

我有一个主Linux Jenkins服务器。我需要使用管道测试远程windows共享上是否存在文件

有没有一个简单的方法可以做到这一点?我了解到“fileExists”只适用于本地工作区,所以这是不好的

这可能吗?或者我需要使用sh命令来执行一些魔术吗

谢谢

Craig

如果您已经安装在Jenkins服务器上,您可以尝试以下方法

$ lftp -c "open sftp://hostname_remote_windows_system ; find file_to_be_found.txt"

请注意,
fileExists()
需要在节点上执行。那么:让一个windows节点连接到您的Linux主机,执行
fileExists()
,比如:

def fileDoesExist
node('windows') {
    fileDoesExist = fileExists(pathToFile)
}
请注意,访问windows文件共享需要
网络使用
一次。因此,为了使这一点在以前从未访问过共享的新机器上也能起作用,您应该:

def fileDoesExist
node('windows') {
    bat 'net use \\\\share\\path\\to\\some\\directory'
    fileDoesExist = fileExists('//share/path/to/file')
}

if (fileDoesExist) {
    // do someting here
}

使用NFS将远程FS连接为本地文件夹。检查此文件夹。如果ssh服务器正在windows计算机上运行,只需交换密钥并通过ssh连接即可。