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