SSH経由して複数ホストへの自動コピースクリプト

SSH標準のSCPで指定したフォルダを複数ホストへの自動コピーする。

#!/bin/bash

# Check expect cmd
locate expect 2>&1>/dev/null || { echo "ERROR! CMD [ expect ] NEEDED!!";exit -1;
 }

SENDUSER='USER'
SENDPASS='APSSWORD'
SENDDIR='/home/USER/'
REMOTEDIR='/home/'
HOSTS='192.168.45.102 192.168.45.103 192.168.45.104 192.168.45.105 192.168.45.10
6'

# Send to hosts using SCP
for host in ${HOSTS}
do
  expect -c "
  spawn /usr/bin/scp -r ${SENDDIR} ${SENDUSER}@${host}:${REMOTEDIR}
  expect {
    \"Are you sure you want to continue connecting (yes/no)?\" {
      send \"yes\r\"
      expect \"password:\"
      send \"$SENDPASS\r\"
    } \"password:\" {
      send \"$SENDPASS\r\"
    }
  }
  interact
  "
done