主要利用了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

最新文章

  1. 使用Visual Leak Detector for Visual C++ 捕捉内存泄露
  2. 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)
  3. FL2440驱动添加(5)ADC驱动学习笔记
  4. spring+mybatis多数据源切换
  5. uc_key getshell
  6. room_speed和image_speed
  7. cojs 香蕉 解题报告
  8. [一]初识Ajax
  9. SuperSocket与Netty之实现protobuf协议,包括服务端和客户端
  10. C# 让textbox 只能输入数字的方法
  11. WebApp模版并运行
  12. Eclipse3.6 添加JUnit源代码
  13. Python开发一个csv比较功能相关知识点汇总及demo
  14. VNC实现Windows远程访问Ubuntu 16.04(无需安装第三方桌面)
  15. 青否云 - 小程序待办事项 jquery开源系统
  16. Fiddler中Response 的Raw乱码问题解决
  17. Linux操作系统log日志日志分别指什么
  18. [Linux] LVS虚拟服务器四层负载均衡
  19. openstack Q版部署-----Cinder云存储服务(10)
  20. $Django cbv源码分析 djangorestframework框架之APIView源码分析

热门文章

  1. oracle 日期常用函数(转载)
  2. 【gulp】前端自动化工具---gulp的使用(一)------【巷子】
  3. drop user 报错ora-00604
  4. nginx 上php不可写解决方法
  5. mysql 数据操作 单表查询 使用正则表达式查询
  6. 【开发者笔记】python
  7. jdk eclipse SDK下载安装及配置教程
  8. 什么是API测试
  9. 【cocos2d-x 3.5】Lua动画API
  10. 005-matlab2018a安装破解