1

所以我不得不编写一个脚本,将网络文件服务器上的某些图像分开并备份它们以保留文件结构。为此,我将文件服务器作为文件夹安装在我的 linux 机器上,脚本将在其中运行。文件服务器是一个 windows 盒子。

文件服务器是这样安装的:

mount -t cifs //xxx.xxx.xxx.xxx/pictures$ -o username=imageuser,password=pa$$word images

如果我运行这样的复制命令:

cp images/somefolder/subfolder/someimage.jpg images/differentfolder/subfolder/someimage.jpg

我的问题是这样的:

将“someimage.jpg”简单地从Windows机器上的一个位置复制到另一个位置,还是将图像通过网络下载到Linux机器然后上传到Windows机器上的新位置?

编辑:如果文件将被往返 - 我想知道如何做到这一点,或者至少要指向正确的方向,在那里我可以阅读如何做到这一点。

4

1 回答 1

2

cp协议和协议都smb不够聪明,无法意识到文件的源 + 目标位于同一远程服务器上。cp 将简单地做它通常的事情并从源文件中获取所有数据(将其复制到客户端计算机),然后将其吐回到服务器上的目标文件中。所以是的,这将是通过客户端的往返。

对于这类事情,一个更好的解决方案是使用 SSH 远程命令,将其变成纯粹的服务器端操作:

ssh imageuser@x.x.x.x 'cp sourcefile targetfile'

您仍然可以将文件服务器安装在本地计算机上以实际查看您正在处理的文件,但通过 ssh 命令执行所有文件复制/移动操作以提高效率。由于服务器是 Windows 机器,您可能必须安装 cygwin 并运行 ssh 服务器。

于 2013-07-17T14:37:04.167 回答