主要利用了mysqldump和sshpass进行备份和免密上传

以下是代码实现:

#!/bin/bash

#该脚本放在主服务器运行

#从服务器账号密码ip
remotehost="xxxxxxxxxx"  #远程主机IP
passwd="xxxxxxxx"      #远程主机密码
user="root"                #远程主机账号

localbackdir=/root/backupdir
remotebackdir=/root/backupdir
curdate=`date +"%Y-%m-%d"`
django_sql=$curdate"-django.sql"
vpnmaintenance_sql=$curdate"-vpn-maintenance.sql

if [ ! -d $localbackdir ];then
echo "test"
echo "本地备份目录不存在,将创建!"
mkdir $localbackdir
docker exec -it mysql mysqldump -u root -p"_VPN3211" django >$localbackdir/$django_sql
docker exec -it mysql mysqldump -u root -p"_VPN3211" vpn-maintenance >$localbackdir/$vpnmaintenance_sql
echo -e "\033[31m 以下是备份内容 \033[0m"
ls -lh $localbackdir
else

echo "本地备份目录存在,即将备份!"
echo `date`

#备份数据库
docker exec -it mysql mysqldump -u root -p"_VPN3211" django >$localbackdir/$django_sql
docker exec -it mysql mysqldump -u root -p"_VPN3211" vpn-maintenance >$localbackdir/$vpnmaintenance_sql
echo -e "\033[31m 以下是备份内容 \033[0m"
ls -lh $localbackdir

#echo $?
fi

#判断远程主机目录是否存在
result=`sshpass -p $passwd ssh $user@$remotehost "[ -d $remotebackdir ]"`
if [ $? == 0 ];then
echo "远程备份目录存在,将直接备份!"
sshpass -p$passwd scp $localbackdir/$django_sql $user@$remotehost:$remotebackdir/$django_sql
sshpass -p$passwd scp $localbackdir/$vpnmaintenance_sql $user@$remotehost:$remotebackdir/$vpnmaintenance_sql
echo -e "\033[31m 以下是备份内容 \033[0m"
sshpass -p$passwd ssh $user@$remotehost ls -lh $remotebackdir
else
echo "$remotebackdir 远程备份目录不存在,将创建!"
sshpass -p$passwd ssh $user@$remotehost mkdir $remotebackdir
sshpass -p$passwd scp $localbackdir/$django_sql $user@$remotehost:$remotebackdir/$django_sql
sshpass -p$passwd scp $localbackdir/$vpnmaintenance_sql $user@$remotehost:$remotebackdir/$vpnmaintenance_sql
sshpass -p$passwd ssh $user@$remotehost ls -lh $remotebackdir
fi

mysql数据库的备份及免密码上传的更多相关文章

  1. 百万行mysql数据库优化和10G大文件上传方案

    百万行mysql数据库优化和10G大文件上传方案 最近这几天正在忙这个优化的方案,一直没时间耍,忙碌了一段时间终于还是拿下了这个项目?项目中不要每次都把程序上的问题,让mysql数据库来承担,它只是个 ...

  2. 使用percona-xtrabackup工具对mysql数据库的备份方案

    使用percona-xtrabackup工具对mysql数据库的备份方案 需要备份mysql的主机 172.16.155.23存放备份mysql的主机 172.16.155.22 目的:将155.23 ...

  3. 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)

    一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...

  4. Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁

    Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...

  5. 如何用SQL语句实现Mysql数据库的备份与还原

    以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...

  6. mysqldump常用于MySQL数据库逻辑备份

    mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...

  7. [知了堂学习笔记]_Java代码实现MySQL数据库的备份与还原

    通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...

  8. mysql数据库的备份和还原

    mysql数据库的备份命令:mysqldump -u root  -p 要备份的现有数据库名  >  备份后的sql文件名.sql,例如:  mysqldump -u root -p  heal ...

  9. 关于MySQL数据库的备份方案

    这里简单总结MySQL的备份分为3种:分为冷备份,逻辑备份,热备份. 1.冷备份: 一般主要用于非核心业务,这类业务一般都是允许业务中断的,冷备份的特点就是数度快,恢复时也最为简单.通常直接复物理文件 ...

随机推荐

  1. PHP搭建(windows64+apache2.4.7+mysql-5.6+php5.5+phpMyAdmin)和Discuz安装

    以下文章参考的3个来源,在加上本人搭建过程中遇到的问题的修复完善笔记: <PHP环境的搭建和Discuz!安装> http://www.myxzy.com/post-386.html ht ...

  2. Day01 html详解

      day01 html详解   1.html的简介     1.1 什么是html?         - HyperText Markup Language:超文本标记语言,网页语言         ...

  3. 2014年百度之星程序设计大赛 - 资格赛 1001 Energy Conversion

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/sr19930829/article/details/26003661 Energy Conversi ...

  4. android 控件加圆角

    1.新建一个radius_border.xml <shape xmlns:android="http://schemas.android.com/apk/res/android&quo ...

  5. atime、mtime、ctime的区别及如何降低atime更新 mount时的option noatime

    atime.mtime.ctime的区别及如何降低atime更新 mount时的option  noatime http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3 ...

  6. [WorldWind学习]20.修改ShapeFileLayer类及托管D3D文字绘制方法

    PluginSDK\ShapeFileLayer.cs Line:1027char[] fieldDataChars = dbfReader.ReadChars(fieldHeaders[j].Fie ...

  7. 基于 Spark 的文本情感分析

    转载自:https://www.ibm.com/developerworks/cn/cognitive/library/cc-1606-spark-seniment-analysis/index.ht ...

  8. [css]单/多行居中&字体设置

    行高和字号 行高 CSS中,所有的行,都有行高.盒模型的padding,绝对不是直接作用在文字上的,而是作用在"行"上的. line-height: 40px; 文字,是在自己的行 ...

  9. CentOS 7 集群使用NTP进行时间同步

    NTP时钟同步方式说明NTP在linux下有两种时钟同步方式,分别为直接同步和平滑同步: 直接同步 使用ntpdate命令进行同步,直接进行时间变更.如果服务器上存在一个12点运行的任务,当前服务器时 ...

  10. PAT 1061 Dating[简单]

    1061 Dating(20 分) Sherlock Holmes received a note with some strange strings: Let's date! 3485djDkxh4 ...