如何获取远程服务器主机名并将其用作文件名变量?有了这段代码,我只会得到本地计算机的主机名...

该脚本具有服务器阵列,连接到所有服务器,并运行命令以解压缩文件,按日期降序对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/

10-06 05:11
查看更多