![通过脚本从unix连接到Windows服务器](https://linux22.com/image/63246/%E9%80%9A%E8%BF%87%E8%84%9A%E6%9C%AC%E4%BB%8Eunix%E8%BF%9E%E6%8E%A5%E5%88%B0Windows%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我正在尝试连接到 Windows 服务器(例如 10.1.1.10)。该服务器有一个名为 RAJ 的文件夹,其中有多个 .zip 文件。所有这些 zip 文件都包含一个名为 XYZ.txt 的文本文件。现在我必须合并每个 .zip 文件中这些 XYX.txt 文件的内容,并使用合并的文件创建一个新的文本文档。
那么我如何通过unix连接到windows服务器并仅从每个文件中的XYZ.txt中提取数据呢?
答案1
这是一个非常广泛的问题,涉及多个工具...首先,要连接 Windows 共享,您将需要mount.cifs
命令。它可以从包中获取cifs-utils
(包的名称可能因发行版而异)。
其使用的一个简单示例:
mount.cifs //10.1.1.10/RAJ /mnt/windows -o rw,username=Swapnil
man mount.cifs
根据您的需要查看所有可用选项。
然后,您可以编写一个简单的脚本来列出所有zip
文件、提取它们并连接它们。一个简单的例子:
# For each zip file in this share, do
for f in `find /mnt/windows -name "*.zip"` ; do
# Make a temporary directory
TMPDIR=`mktemp -d`
# unzip in temporary directory
unzip -d ${TMPDIR} ${f}
# cat all the txt files into one
cat ${TMPDIR}/*.txt >> /pth/to/result.txt
# remove temp directory
rm -Rf ${TMPDIR}
done