有没有通过它我可以访问,从一台服务器使用shell脚本另一台服务器上使用和处理文件的方式>(I

2019-10-29 06:13发布

我试图访问文件remote server "10.101.28.83"和操作文件,以创造一个脚本已经运行的主机服务器上的文件夹。 但*是这意味着文件不能从远程服务器读取回声“$(名前缀‘$文件’)”命令的输出。

#!/bin/bash
#for file in /root/final_migrated_data/*; do
for file in root@10.101.28.83:/root/final_migrated_data/* ; do
echo "$(basename "$file")"
IN="$(basename "$file")"
IFS='_'
read -a addr <<< "$(basename "$file")"
# addr[0] is case_type, addr[1] is case_no, addr[2] is case_year
dir_path="/newdir1";
backup_date="${addr[0]}_${addr[1]}_${addr[2]}";
backup_dir="${dir_path}/${backup_date}";
mkdir -p "${backup_dir}";
cp /root/final_migrated_data/"${backup_date}"_* "${backup_dir}"

done

我期待回声“$(名前缀‘$文件’)”的输出为在当前位置的文件列表/root/final_migrated_data/远程服务器,但实际产量*

Answer 1:

您可以使用sshfs的 。 正如其名,sshfs的允许在本地安装(包括用于读取和写入)一个遥远的文件系统,你有SSH访问。 只要你已经知道SSH,它的用法很简单:

# mount the distant directory on your local machine:
sshfs user@server.com:/my/directory /local/mountpoint
# manipulate the filesystem just like any other (cd, ls, mv, rm…)
# unmount:
umount /local/mountpoint

如果您需要经常安装在同一文件系统遥远,你甚至可以把它添加到你的/etc/fstab ,请参阅如何做到这一点的文档。

然而,注意,使用SSH文件系统是缓慢的,因为在文件系统中的每个操作意味着取或通过网络发送数据,以及sshfs的,就没有特别针对优化(它不缓存文件的内容,例如)。 其他的解决方案存在 ,这可能是更复杂的设置,但提供更好的性能。

自己见速度是否是一个问题。 在你的情况,如果你只是在你的服务器在服务器另一个地方复制从一个地方的文件,它似乎很荒谬,通过您的家用电脑,然后再返回,使之途。 它可能是更有利的简单的直接在服务器上运行你的脚本。



文章来源: Is there a way through which i can access,use and manipulate files from one server using shell scripting on another server >
标签: shell ssh