Dyl*_*lan 3 file-server pipe smb
我在远程服务器上有一个 100gig 文件,我需要做的是连接到那台机器和 zcat 该文件并将 zcat 的输出通过管道传输到本地机器上的命令......我希望 smbclient 会有所帮助,但我可以'似乎找到了一种在本地运行命令的方法,但管道的左侧来自远程源。
我认为使用我编写的命令 remoteZcatCommand会有点像
remoteZcatCommand 100gigRemotefile.gz | grep findSomeStuff
这可能有点误导,因为grep findSomeStuff
实际上是一个需要本地机器上的硬件的命令。也不能将 100gig 文件移动到本地计算机。
smbclient -E -U $USERNAME //server/sharename $PASSWORD -c 'get \\dir\\filename.gz /dev/fd/1' 2>/dev/null | zcat | yourcommand
Run Code Online (Sandbox Code Playgroud)
该-E
指示smbclient
所有邮件发送到标准错误而不是标准输出,其中这些消息会搞乱输出,我们实际上想要的。我对这些消息不感兴趣,所以它们被2>/dev/null
.
该-U $USERNAME
是指示连接到SMB服务器时,用户名是什么,应使用。
本//server/sharename
应该是显而易见的。
该$PASSWORD
是$USERNAME
的SMB服务器上的密码。
这-c 'get \\dir\\filename.gz /dev/fd/1'
是应该执行的命令:获取命名文件(通过加倍来转义反斜杠),并将其发送到/dev/fd/1
与命令的标准输出相同的本地文件。然后zcat
,在需要进行任何进一步处理之前,标准输出将通过管道进行扩展。