我目前在a,sh中使用以下命令来收集服务器列表中特定文件夹的内容列表,由list.txt(包含IP)描述
for f in `cat serverlist.txt`; do
echo "### $f ###";
sshpass -p PASSWORD ssh USER@$f ls /usr/local/folder >>list.txt;
done
虽然这有效,但它只是我问题的一半,我是BASH的新手
我想要获得的是一个格式如此的列表
file1.HOSTNAMEOFSERVER1
file2.HOSTNAMEOFSERVER1
file3.HOSTNAMEOFSERVER1
file1.HOSTNAMEOFNEXTSERVER2
file2.HOSTNAMEOFNEXTSERVER2
file3.HOSTNAMEOFNEXTSERVER2
file1.HOSTNAMEOFNEXTSERVER3
有人能帮忙吗?
答案 0 :(得分:0)
只需使用ls
选项将-C1
输出格式化为列:ls -C1 /usr/local/folder
。
答案 1 :(得分:0)
未测试:
while read host; do
sshpass -p PASSWORD ssh USER@"$host" ls /usr/local/folder |
sed 's/$/.'"$host"/;
done < serverlist.txt
不要在这样的剧本中实际输入密码。改为设置你的ssh密钥。