DEST_USER=$1 PASSWORD=$2 HOSTS_FILE=$3 if [ $# -ne3 ]; then echo "Usage:" echo "$0 remoteUser remotePassword hostsFile" exit 1 fi if [ "${DEST_USER}" != "root" ]; then cd /home/"${DEST_USER}"/ || return fi
# 4. chmod 600forfile authorized_keys chmod 600$SSH_DIR/authorized_keys echo =========================== # 5. copy allfiles 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