【发布时间】:2019-08-22 14:12:29
【问题描述】:
我尝试从remote server "10.101.28.83" 访问文件并操作文件以在运行脚本的主机服务器上创建文件夹。但* 是 echo "$(basename "$file")" 命令的输出,这意味着文件不是从远程服务器读取的。
#!/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
我希望 echo "$(basename "$file")" 的输出是远程服务器位置 /root/final_migrated_data/ 的文件列表,但实际输出是 * .
【问题讨论】:
-
您想在远程机器上执行该循环,您需要使用
ssh来执行此操作。root@10.101.28.83 'cd /root/final_migrated_data; for file in * l do .... ; done。在此处搜索有关如何设置您的ssh访问权限的 Q/A。第一次可能会感到困惑和沮丧。看看您所在地区的其他人是否可以向您展示如何操作。祝你好运。