如何获取远程服务器主机名并将其用作文件名变量?使用此代码我只能获取本地计算机的主机名...
该脚本具有服务器阵列,连接到所有服务器并运行命令来解压缩文件,按日期降序对 CSV 文件进行排序,保留前 40 行并上传到服务器。
数组中包含服务器的 IP,而不是主机名。
file=$(hostname)$(date +%Y_%m_%d)
for server in "${servers[@]}"
do
ssh -t $user@$server << EOF
unzip -o "$location1"/1.zip -d "$localdir"/
cp -v "$localdir"/1.csv "$localdir"/jobs_optimized.csv
head -1 "$localdir"/jobs_optimized.csv > "$localdir"/"$file".csv |\
tail -n+2 "$localdir"/jobs_optimized.csv |\
sort -rn -t, -k5.7,5.10 -k5.4,5.5 -k 5.1,5.2 >> "$localdir"/"$file".csv
head -40 "$localdir"/"$file".csv > "$remotedir"/"$file".csv
ls "$remotedir"
EOF
scp $user@$server:$remotedir/"$failas".csv /tmp/
done
最佳答案
您可以在远程主机上创建文件名:
# ....
head -40 "$localdir"/"$file".csv > "$remotedir"/"$file_$(hostname)".csv
ls "$remotedir"
EOF
scp $user@$server:$remotedir/"$failas*".csv /tmp/
关于arrays - 如何获取远程服务器主机名作为变量并使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22835701/