.csv ファイルに 2 つのエントリ (行) があるにもかかわらず、この while ループが 1 回しか実行されないのはなぜですか?
また、式に一致するファイル/ディレクトリがない場合、文字列 'ls: /root/ heapdump : No such file or directory' がコンソールにも出力されるのはなぜですか?
#!/bin/bash
INPUT=targets.csv
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while IFS=, read target user password path
do
result=$(sshpass -p "$password" ssh "$user"@"$target" ls "$path"*heapdump*)
if [ $? -ne 0 ]
then
echo "No Heap dumps detected."
else
echo "Found a Heap dump! Possible OOM issue detected"
fi
done < $INPUT
.csv コンテンツ ..
rob@laptop:~/scripts$ cat targets.csv
server.com,root,passw0rd,/root/
server.com,root,passw0rd,/root/
出力 ..
rob@laptop:~/scripts$ ./checkForHeapdump.sh
ls: /root/*heapdump*: No such file or directory
No Heap dumps detected.