mysql_data.sh
#!/usr/bin/expect
# 相应时间300000
set timeout 300000
# 可传入的参数
set dest_file [lindex $argv 0]
# 判断条件
spawn scp $dest_file erpstd@192.168.1.35:/home/data
expect {
"(yes/no)?" {
send "yes\n"
expect "password:"
send "admin\n"
}
"password:" {
send "admin\n"
}
}
#expect语句结束
expect eof
mysql_databak.sh
#!/bin/sh
DUMP=/usr/bin/mysqldump
OUT_DIR=/home/mysql_data
LINUX_USER=erpstd
DB_NAME=bxd
DB_USER=root
DB_PASS=000000
DAYS=7
cd $OUT_DIR
DATE=`date +%Y-%m-%d`
OUT_SQL=$DATE.sql
TAR_SQL="energy_bak_$DATE.tar.gz"
# 导出数据库
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables>$OUT_SQL
# 打包
tar -czf $TAR_SQL ./$OUT_SQL
rm $OUT_SQL
# 赋予权限
chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL
# 删除过期的数据
find $OUT_DIR -name "energy_bak*" -type f -mtime +$DAYS -exec rm {} ;
# 触发发送条件
./send_databak.sh $TAR_SQL
~
~