sshログインでパスワードが必要な時のmysqldumpを取るシェル

#!/bin/sh

# パラメータ
DAY=`date +%Y%m%d_%H%M%S`
DUMP_FILE=dump_$DAY.sql
DB_USER=root
DB_PASS=pwd
DB_NAME=user_db

#HOST="192.168.95.16"
HOST="192.168.80.101"
USER="root"
PASS="root001"
TARGET_DIR="/var/log_backup"
yes="yes"


###############################################################################
# 管理サーバへSCPでバックアップ
# except+SCPでシェルスクリプト内にパスワードを持たせるのは
# bad know-howとの指摘も。。。
#

mysqldump -c --user=$DB_USER --password=$DB_PASS $DB_NAME > $DUMP_FILE
gzip $DUMP_FILE


###############################################################################
# 管理サーバへSCPでバックアップ
# except+SCPでシェルスクリプト内にパスワードを持たせるのは
# bad know-howとの指摘も。。。
#

# access_log
expect -c "
    sleep 1
    set timeout 60
    spawn scp $DUMP_FILE.gz $USER@$HOST:$TARGET_DIR
    expect {
        \"Are you sure you want to continue connecting (yes/no)?\" {
            send \"$yes\n\"
            expect \"password:\"
            send \"$PASS\n\"
        } \"password:\" {
            send \"$PASS\n\"
        }
    }
    expect {
        \"100%\" {
            exit 1
        }
    }
"