2014-02-21 174 views
0

我正在一个服务器上运行一个脚本,该脚本应该将源目录中的所有文件x次复制到destinaton目录中。当两位导演都在服务器上时,它运行良好。服务器上运行的Bash脚本,访问本地文件

如何从C:\ dir本地目录复制到服务器目录?

+1

你将不得不使用一些协议,如SFTP,SCP或类似的用户权限。 –

+0

您是否试图让服务器从服务器上运行bash脚本从本地系统检索文件? – andrew

+0

如果其中一个系统是Windows,那应该可以反映在问题的标题和标记中 –

回答

1

如果你有系统之间的SSH访问,你可以把本地目录到远程位置,像这样:

printf -v ssh_cmd 'mkdir -p %q && tar -C %q -x' \ 
    "$dest_directory" "$dest_directory" 
tar -C "$source_directory" -c . | ssh other_host "$ssh_cmd" 

...或拉远程目录到本地一个类似:

printf -v ssh_cmd 'tar -C %q -c .' \ 
    "$source_directory" "$source_directory" 
mkdir -p "$dest_directory" 
ssh other_host "$ssh_cmd" | tar -C "$dest_directory" -x 
+0

如果其中一个系统是Windows,这将适用于cygwin。 (可能需要启动Cygwin sshd作为服务,但这是可用的)。 –

0

首先,您需要共享您的本地“C:\ dir”并为其指定网络名称,例如“networkdir”。

然后,然后你复制文件挂载它像
mount -t cifs -o username=user,password=pw //hostname/networkdir /mnt/localdir/

/mnt/localdir/像你这样做是为了本地目录。

对于secirity原因,你也可以只进行此操作创建用户在Windows中,并给写入该份额

+0

问题是这个脚本应该是我公司里任何人都可以使用的。我想每个人都必须分享本地目录呢? – Tobey

+0

好吧,我的解决方案需要共享目录。你有试过另一个吗? – Alexander

相关问题