#========================start shell 脚本============================

#!/bin/bash

#定义备份数据库时使用的用户名和密码

db_user="root"

db_passwd="111111"

#定义FTP服务器地址、用户名、密码、目录

ftp_url=113.108.8.80

ftp_user=ftpuser

ftp_passwd=111111

ftp_dir=/mysql_backup/xxxx

#数据库备份的路径

backup_dir=/home/mysqlbak

#当前日期

time=` date +%Y%m%d `

#得到所有数据库名的sql

sql="show databases"

#得到所有数据库名

declare databases=`mysql -u${db_user} -p${db_passwd} -e "${sql}"`

#循环数据库名列表,执行备份

for db_name in $databases

do

if [ $db_name != "Database" ] && [ $db_name != "information_schema" ] && [ $db_name != "mysql" ] && [ $db_name != "test" ]; then

echo " the item is $db_name"

/usr/bin/mysqldump -u$db_user -p$db_passwd -R -E -B $db_name > "$backup_dir/$db_name"_"$time.sql"

fi

done

#删除备份目录下早于七天前的文件

find $backup_dir -name '*.sql' -type f -mtime +7 -exec rm {} \;

#压缩文件

cd $backup_dir

zip -m db_$time.zip *_$time.sql

#上传文件

ftp -d -n <

open "$ftp_url"

user "$ftp_user" "$ftp_passwd"

passive

binary

cd $ftp_dir

lcd $backup_dir

prompt

put db_$time.zip

close

bye

!

#====================end shell 脚本======================

passive:开关被动模式,,这里上传需要用主动模式,加上控制开关被动模式  看情况加不加     如果上传使用被动模式 则Entering Passive Mode报错

binary:二进制传输

cd: 服务端cd  lcd:客户端cd  put上传单个 mput上传多个 get下载单个 mget下载多个prompt多个提示

#========================start shell 脚本============================#!/bin/bash

#定义备份数据库时使用的用户名和密码db_user="root"db_passwd="111111"

#定义FTP服务器地址、用户名、密码、目录ftp_url=113.108.8.80ftp_user=ftpuserftp_passwd=111111ftp_dir=/mysql_backup/113.108.8.82

#数据库备份的路径backup_dir=/home/mysqlbak

#当前日期time=` date +%Y%m%d `

#得到所有数据库名的sqlsql="show databases"

#得到所有数据库名declare databases=`mysql -u${db_user} -p${db_passwd} -e "${sql}"`

#循环数据库名列表,执行备份for db_name in $databasesdoif [ $db_name != "Database" ] && [ $db_name != "information_schema" ] && [ $db_name != "mysql" ] && [ $db_name != "test" ]; thenecho " the item is $db_name"        /usr/bin/mysqldump -u$db_user -p$db_passwd -R -E -B $db_name > "$backup_dir/$db_name"_"$time.sql"fidone

#删除备份目录下早于七天前的文件find $backup_dir -name '*.sql' -type f -mtime +7 -exec rm {} \;

#压缩文件cd $backup_dirzip -m db_$time.zip *_$time.sql

#上传文件ftp -d -n <

#====================end shell 脚本======================

安装crontab:

yum install crontabs

crontab -e 打开执行计划

0 10 * * * /home/baksh/bakupmysql.sh  每天10点执行这个脚本

minute   hour   day   month   week   command

其中:

minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

sudo chmod 777 ××× (每个人都有读和写以及执行的权限)

service crond reload

服务操作说明:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

linux 备份mysql并上传_linux备份数据库并上传至远程服务器(定时执行shell进行ftp上传)...相关推荐

  1. 电脑服务器上复制文件,远程服务器文件复制到本地电脑上

    远程服务器文件复制到本地电脑上 内容精选 换一换 R-Studio这个软件是Windows电脑和Windows服务器上都能运行的.可以恢复Windows文件系统和Linux文件系统的绝好软件,我试过了 ...

  2. Linux 定时执行shell 脚本

    2019年第 85 篇文章,总第 109 篇文章 本文大约2000字,阅读大约需要6分钟 crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令. 定时执行shell ...

  3. python调用shell脚本的参数_使用python执行shell脚本 并动态传参 及subprocess的使用详解

    最近工作需求中 有遇到这个情况 在web端获取配置文件内容 及 往shell 脚本中动态传入参数 执行shell脚本这个有多种方法 最后还是选择了subprocess这个python标准库 subpr ...

  4. linux定时执行shell脚本

    linux定时执行shell脚本 需求:每分钟检查下文件是否存在 解决思路: 1.编写shell脚本,检查文件是否存在,存在在文件中记录yes,不存在记录no 2.将脚本加入linux定时任务cron ...

  5. 树莓派自动备份mysql数据表_MySQL数据备份之mysqldump使用

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

  6. linux的mysql本地yum安装_Linux下MySQL5.7.18 yum方式从卸载到安装过程图解

    折腾了大半天,看了想,想了看,总算是弄清楚yum安装的过程了,之前写过二进制包安装的,这里用yum安装,环境都是一样的,Centos7.2+MySQL5.7.18. 每一步都参考了不少文章,后面会一一 ...

  7. linux安装mysql后怎么进去_linux安装mysql详细步骤

    最近买了个腾讯云服务器,搭建环境. 该笔记用于系统上未装过mysql的干净系统第一次安装mysql.自己指定安装目录,指定数据文件目录. linux系统版本: CentOS 7.3 64位 安装源文件 ...

  8. linux 64 mysql下载官网_Linux下安装MySQL5.7

    Oracle提供很多MySQL的发行版本,其中就包括压缩在tar文件(.tar.gz)内的通用二进制版本,下面介绍如何在Linux上安装这种版本的MySQL5.7,首先从官网下载MySQL,这里使用6 ...

  9. linux的mysql本地yum安装_Linux Centos 下使用yum 命令安装mysql实现步骤

    Linux Centos 下使用yum 命令安装mysql实现步骤 1. 查看服务器中有没有安装过Mysql 1. 查看有没有安装包: yum list mysql* #移除已经安装的mysql yu ...

最新文章

  1. 操作系统性能优化分析及工具
  2. 40 个 SpringBoot 常用的注解,你知道几个?
  3. [Ext JS 4] 实战Chart 协调控制(单一的坐标,两个坐标)
  4. 如何做好网络推广中有关网站优化中内链搭建都有什么方法?
  5. 2016年第二季度全球以太网交换机销量破60亿美元
  6. android 之DatePicker以及TimePicker的用法
  7. helm部署Loki
  8. Web API 安全问题
  9. MOSS 2007基础:内容类型(Content Type)之二
  10. 2020牛客暑期多校训练营(第二场)Just Shuffle
  11. 微信程序短视频去水印源码 开源产品未加密未授权相关文章
  12. Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.
  13. web 开发之js---页面缓存, jsp 缓存, html 缓存, ajax缓存,解决方法
  14. react-redux学习笔记
  15. 绕障飞行器(D 题)--2020 年TI 杯大学生电子设计竞赛
  16. php adodb类库下载,PHP_PHP程序中使用adodb连接不同数据库的代码实例,adodb.inc.php文件需要去下载一个 - phpStudy...
  17. 用python判断素数合数_使用Python判断质数(素数)的简单
  18. Quantopian 大市值科技股市值加权回测
  19. 一个屌丝程序员的青春(一九一)
  20. Sovit3D数字孪生智慧海上风电场3D可视化管理平台

热门文章

  1. 箱线图和散点图叠加图形的绘制——R language
  2. 风控模型师面试准备--技术篇(逻辑回归、决策树、集成学习)
  3. Spring+SpringMVC+Mybatis项目—企业权限管理系统(2)
  4. 读书笔记007:《伤寒论》- 手少阴心经
  5. Lodop打印设计界面生成代码带”...(省略)”
  6. LUOGU P4016 负载平衡问题
  7. vc中关于 directx的配置,和dxsdk_extras(directshow)
  8. Modelsim仿真tcl脚本与wave.do文件
  9. 【计算机网络复习 数据链路层】3.3.1 差错控制(检错编码)
  10. Hadoop相关技术