如何将远程服务器主机名作为变量并使用它?

时间:2014-04-03 11:08:49

标签: arrays linux bash csv ssh

如何获取远程服务器主机名并将其用作文件名变量?使用此代码,我只获取本地计算机的主机名...

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

1 个答案:

答案 0 :(得分:0)

您可以在远程主机上创建文件名:

    # ....
    head -40 "$localdir"/"$file".csv > "$remotedir"/"$file_$(hostname)".csv
    ls "$remotedir"
EOF

scp $user@$server:$remotedir/"$failas*".csv /tmp/