您的位置:首页 > 数据库 > SQL

linux下备份mysql数据库,并ftp到远程linux服务器上

2015-12-31 15:22 671 查看
一、检查FTP服务是否安装

1.架设mysql数据库装在172.22.1.77上,如何安装mysql略,简称为77。

2.作为备份机IP为172.22.1.150上,简称为150;

3.为150按照ftp命令,首先XSHELL远程连接到150上,确认ftp服务是否安装。

service vsftpd status



显示vsftpd已停,说明服务停止,输入:service vsftpd start可启动服务。

如果显示:-bash vsftpd :command not find,说明服务未安装。

二、安装FTP服务

1.安装使用yum,如果linux上没有安装yum工具,前先安装yum,此处不赘述。

2.输入命令:yum install vsftpd ,如图所示安装。在is this ok [y/N] 后输入y

3.安装完毕后先创建一个ftp专用账号,该用户的登陆文件夹将作为以后远程备份的sql文件位置。

在此我们创建一个 /opt/user 这个文件夹作为上传路径。以及一个user用户,密码也为user

输入命令:useradd –d /opt/user user

查看确认一下目录所有者权限,user是否可以写入:

在/opt目录下输入命令:ls –l

user目录所有者为user,权限为rwx

修改用户名密码

输入:passwd user

三、测试FTP服务

1.打开cmd命令,输入ftp命令,

open 172.22.1.150

输入账号密码user,成功登陆。表明ftp服务可用。



四、编写sh脚本

在77上/home下新建mysql_data作为备份文件存放路径,并在该目录下新建bak.sh,拷贝以下内容至该文件中。

修改完成后,保存并推出。修改文件可执行权限,

chmod +x bak.sh

测试该脚本是否运行正常:

sh bak.sh

这里请忽略语法和格式错误,该错误不影响备份。



到150目录/opt/user和77目录/home/mysql_data下可以看到2015_12_31_15_14.sql的文件,远程备份成功。



五、设置定时任务

shell到77上,输入crontab -l查看用户的定时任务,

输入crontab -e 编辑某个用户的cron服务

输入:

30 01 * * * /home/mysql_data/bak.sh

设置在凌晨1:30分运行bak脚本;

最后输入:/etc/init.d/crond restart

重启crond,让其生效。

六、还原mysql备份

xshell到150上,输入:mysql -uroot -p123456登陆到mysql;



输入命令”show databases;”,回车,看看有些什么数据库;切换到要还原的数据库,输入”use funing_wms;”,回车;导入数据,

输入”source /opt/user/fn_wms_bak_2015_12_31_16_05.sql;”,回车,开始导入,再次出现”mysql>”并且没有提示错误即还原成功。

附sh脚本:

#!/bin/sh
DUMP=/usr/bin/mysqldump    #mysqldump备份文件执行路径
OUT_DIR=/home/mysql_data   #备份存放路径
LINUX_USER=root            #系统用户名
DB_NAME=funing_wms               #要备份的数据库名字
DB_USER=root               #数据库账号 注意:非root用户要用备份参数 --skip-lock-tables,否则可能会报错
DB_PASS=123456            #数据库密码
DAYS=7                     #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
cd $OUT_DIR                #进入备份存放目录
DATE=`date +%Y_%m_%d_%H_%M`      #获取当前系统时间
OUT_SQL="$DATE.sql"        #备份数据库的文件名
TAR_SQL="fn_wms_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 #备份
chown  $LINUX_USER:$LINUX_USER $OUT_DIR/$OUT_SQL  #更改备份数据库文件的所有者
find $OUT_DIR -name "fn_wms_bak_*" -type f -mtime +$DAYS -exec rm {} \;  #删除7天前的备份文件
ftp -n<<!
open 172.22.1.150
type binary
user user user
prompt
put $OUT_SQL fn_wms_bak_$OUT_SQL
close
bye
!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息