DEST_USER=$1 PASSWORD=$2 HOSTS_FILE=$3 if [ $# -ne 3 ]; then echo"Usage:" echo"$0 remoteUser remotePassword hostsFile" exit 1 fi if [ "${DEST_USER}" != "root" ]; then cd /home/"${DEST_USER}"/ || return fi
# 4. chmod 600 for file authorized_keys chmod 600 $SSH_DIR/authorized_keys echo =========================== # 5. copy all files to other hosts for ip in $(<"${HOSTS_FILE}"); do if [ "x$ip" != "x" ]; then echo ------------------------- TMP_SCRIPT=${SCRIPT_PREFIX}.$ip.sh # check known_hosts val=$(ssh-keygen -F "${ip}") if [ "x$val" == "x" ]; then echo"$ip not in $SSH_DIR/known_hosts, need to add" val=$(ssh-keyscan "${ip}" 2>/dev/null) if [ "x$val" == "x" ]; then echo"ssh-keyscan $ip failed!" else echo"${val}" >>$SSH_DIR/known_hosts fi fi echo"copy $SSH_DIR to $ip" { echo"#!/usr/bin/expect" echo"spawn scp -r $SSH_DIR$DEST_USER@$ip:~/" echo"expect *assword*" echo"send $PASSWORD\r" echo"interact" } >"$TMP_SCRIPT"
chmod +x "$TMP_SCRIPT"
/usr/bin/expect "$TMP_SCRIPT" rm -rf "$TMP_SCRIPT" echo"copy done." fi done
# 6. date ssh for ip in $(<"$HOSTS_FILE"); do if [ "x$ip" != "x" ]; then { echo"#!/usr/bin/expect" echo"spawn ssh $DEST_USER@$ip date" echo"expect *yes*" echo"send yes\r" echo"interact" } >"$TMP_SCRIPT"
chmod +x "$TMP_SCRIPT"
/usr/bin/expect "$TMP_SCRIPT" rm -rf "$TMP_SCRIPT" echo"copy done." fi done