# 上传备份
# mysqldump 备份 MySQL 中的库或表
mysqldump
常用参数详解:
-u 用户名
-p 密码
-h 服务器IP地址
-d 等价于--no-data 只导出表结构
-t 等价于--no-create-info 只导出数据,不导出建表语句
-A 等价于--all-databases
-B 等价于--databases 导出一个或多个数据库
需求:将school中的score表备份,并且将备份数据通过FTP传输到192.168.184.3的/data/backup目录下
```sh
mysqldump -uroot -p20052017 school > school.sql
# 备份全部有权限的
mysqldump -uroot -p20052017 -A > school.sql
# ftp
FTP常用指令:
open 与FTP服务器建立连接,例子:open 192.168.184.3
user 有权限登录FTP服务器的用户名和密码,例子:user ftp_user redhat
FTP常用参数:
-n 自动登陆
-i 忽律交互性提示
-v 提示性信息
ftp -inv << EOF
open 192.168.184.3 # 建立连接
user 用户 密码
cd /tmp
put 1.txt # 传一个数据过去
bye # 结束
EOF
# 自动备份脚本
备份本地数据为 sql 文件然后 ftp 传输给远端
#!/bin/bash
#
db_user="dbuser"
db_password="123456"
db_host="192.168.184.132"
ftp_user="ftp_user"
ftp_password="redhat"
ftp_host="192.168.184.3"
dst_dir="/data/backup" # 备份文件放在哪里
time_date="$(date +%Y%m%d%H%M%S)"
file_name="school_score_${time_date}.sql"
function auto_ftp() {
ftp -niv <<EOF
open $ftp_host
user $ftp_user $ftp_password
cd $dst_dir
put $1
bye
EOF
}
# 结束的EOF必须顶格写
# &&表示前面成功之后后面再继续执行
mysqldump -u"$db_user" -p"$db_password" -h"$db_host" school score >./$file_name && auto_ftp ./$file_name
← 将文本内容插入数据库 nginx 相关脚本 →