脚本内容:

#!/bin/bash
#功能说明:本功能用于备份mysql数据库
#编写日期:2018/05/17
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin
export PATH
#数据库用户名
dbuser='dbuser'
#数据库密码
dbpasswd='dbpasswd'
#数据库名,可以定义多个数据库,中间以空格隔开,如:test test1 test2
dbname='dbname'
#备份时间
backtime=`date +%Y%m%d%H%M%S`
#日志备份路径
logpath='/opt/mysqlbackup/log'
#数据备份路径
datapath='/opt/mysqlbackup'
#日志记录头部
echo ‘”备份时间为${backtime},备份数据库表 ${dbname} 开始” >> ${logpath}/mysqllog.log
#正式备份数据库
for table in $dbname; do
source=`mysqldump  -u${dbuser} -p${dbpasswd} --single-transaction ${table}> ${datapath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log;
#备份成功以下操作
if [ "$?" == 0 ];then
cd $datapath
#为节约硬盘空间,将数据库压缩
tar jcf ${table}${backtime}.tar.bz2 ${backtime}.sql > /dev/null
#删除原始文件,只留压缩后文件
rm -f ${datapath}/${backtime}.sql
echo “数据库表 ${dbname} 备份成功!!” >> ${logpath}/mysqllog.log
else
#备份失败则进行以下操作
echo “数据库表 ${dbname} 备份失败!!” >> ${logpath}/mysqllog.log
fi
done


易错问题:

1、命令错误

一般我们备份数据库时,直接使用命令 :mysqldump -h127.0.0.1 -p3306 -uroot -p123456 db t1 t2 > /data/backup/db_t1_t2.sql

有的数据库版本会提示错误-bash:mysqldump: command not found,解决这个问题的可以设置软连接,也可以将mysqldump所做目录补全执行备份。

/mysql/bin/mysqldump -h127.0.0.1 -p3306 -uroot -p123456 db t1 t2 > /data/backup/db_t1_t2.sql
————————————————

2、报错问题

错误:-bash: ./how_paras.sh: /bin/bash^M: bad interpreter: No such file or directory

当我在shell中运行how_paras.sh时,出现了这个错误

[root@localhost sbin]# ./how_paras.sh
-bash: ./how_paras.sh: /bin/bash^M: bad interpreter: No such file or directory 翻译即:

-bash:./how_paras.sh:/ bin / bash ^ M:糟糕的解释器:没有这样的文件或目录

好,那我们来分析一下,为什么会出现这种情况,这个问题说明什么,以及如何来解决它!

情景
之前,我都是直接在shell中创建,编写,执行脚本,都没有问题。因为感觉在shell中编写脚本不方便。于是使用WinSCP软件,将在shell中创建的空脚本,下载到windos系统中,用我的文本编辑器Notepad++来编写脚本,将编写好的脚本保存,并上传到linux系统中去。最后利用远程工具shell链接linux系统,运行这个脚本。

why

为什么会出现这个问题
问题就出在,我把shell中的脚本下载到windos系统中来进行编辑。

windos中Notepadd++编辑脚本,使得脚本文件格式为DOS格式,即每一行的行位是\r\n来标识。

好,那我打开vim编辑器确认一下。

[root@localhost sbin]# vim how_paras.sh
//  ... ...此处省略how_paras.sh脚本内容
//在命令行模式输入下面这个命令
:set ff?
//显示结果为
  fileformat=dos                                             1,1           All

总结

1、打开脚本确认脚本文件格式:vim xxx.sh,:set ff?。xxx.sh代表脚本文件

what

这个问题说明什么
出现这个问题说明在windos系统和linux系统中的文件格式不一致。

how

方法一: 如何解决?
直接解决方法:

用vim编辑这个脚本,在命令行模式下,设置文件的格式,并保存。

即vim xxx.sh,:set ff=unix

方法二:如何解决?

在Windos系统中Notepad++软件中更改,打开这个文件:编辑–>转换为UNIX格式

彻底解决方法:更改Windos系统中Notepad++软件的文件方式。改为:NIX格式。

步骤:

打开Notepad++: 
设置–>首选项–>新建:选择格式为UNIX;
设置–>首选项–>默认目录:选择使用新样式对话框(无文件扩展名和UNIX支持此功能)

————————————————

mysql数据库自动备份脚本(详解)相关推荐

  1. MySQL数据库自动备份脚本

    1.自动备份脚本 #备份文件后缀时间 time="$(date +"%Y%m%d$H")" #备份路径和备份的数据库 #把 root替换为实际的用户名: #把 ...

  2. ubuntu mysql自动备份_Ubuntu下mysql数据库自动备份脚本

    1.创建保存备份文件的目录:/home/mysql_datasudo mkdir mysql_data 2.创建备份脚本文件:/home/mysql_data/mysql_databak.shtouc ...

  3. windows环境mysql数据库自动备份

    1:mysql数据库备份命令 执行 mysqldump -u username -p database > c:/bak.sql 再次输入mysql密码,导出完成! 2:编写bat脚本 @ech ...

  4. linux 备份mysql并上传_实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

    这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到 ...

  5. 奥塔在线:MySql数据库定时备份脚本

    自动备份指定数据库脚本如下: #!/bin/bash #mysql数据库自动备份至指定存储,并清理三天前数据库备份文件 # 2018/7/17 #定义备份文件名称 filename=usr_backu ...

  6. oracle备份数据脚本,oracle数据库自动备份脚本

    ::通过exp命令导出远程机器(192.168.2.1)上指定服务(orcl)指定用户(pmis)及密码(pmis)的数据 ::运行该脚本的机器必须安装oracle @echo off @echo [ ...

  7. windows环境设置mysql数据库自动备份(测试成功)

    windows环境设置mysql数据库自动备份(测试成功) 要实现数据库的自动备份就需要一下两步: 利用MySQL提供的备份命令mysqldump 结合Windows的任务计划程序 实现步骤 编写脚本 ...

  8. 数据库自动备份脚本使用

    数据库自动备份脚本使用 备份 Linux 请先在测试环境进行测试 编写备份脚本 根据情况调整以下内容中的参数,并保存为backup.sh并放置在数据库所在服务器上(位置无限制) echo '##### ...

  9. mysql nb3 备份_通过Navicat进行Mysql数据库自动备份与还原

    Mysql数据库自动备份流程 Navicat版本为:Navicat 12.0.26 例:test为用于测试自动备份的数据库,里面有表t_person,表中有两条数据. 1.点击"自动运行&q ...

最新文章

  1. C++从键盘读取字符
  2. Redux专题:实用
  3. 访问者模式讨论篇:java的动态绑定与双分派
  4. 030_html脚本
  5. 基于matlab的车流量检测,求解释代码,一段交通车流量检测的代码
  6. mysql创建库并创建用户_mysql创建数据库并创建用户授权
  7. java做 binggo,Linux启动与停止spring boot工程的脚本示例
  8. java控制关键字continue,break,return
  9. java 文本变量_如何将一变量作为可配置文件 java
  10. 操盘软件富赢版V7 2016正式版
  11. 【笔记】【一文解决】linux - grep、sed、awk 『三剑客』
  12. html写樱花树,写樱花树的作文
  13. noi国家集训队论文分类
  14. w ndows7怎样连接无线网,windows7电脑如何连接wifi
  15. CAD怎么转化成PDF?手机就可以轻松解决
  16. 在控制台程序中隐藏控制台窗口!
  17. python中怎么创建配置文件,python怎么读取配置文件
  18. 北大计算机硕士选调有发展吗,985毕业生不愿当公务员?别被忽悠了,看看北大毕业生的去向!...
  19. 泛泰SKYA850黑砖QHSUSB_DLOAD救砖教程(操作篇)[2013.6.3更新]
  20. [Java] lomboz eclipse 下载. 后来安装启动报错,google了好久,未果。放弃之,转Myeclipse

热门文章

  1. 一文搞定 Visual Studio 配置 OpenCV环境
  2. 设计Youtube或Netflix
  3. win11的WiFi按钮不见了没有了
  4. 报名考试:Google Certified Professional (GCP) Cloud Architect |Google认证专家(GCP)云架构师
  5. Leetcode刷题-312 :戳气球
  6. 机器学习回归算法代码汇总
  7. ERROR SparkContext: Error initializing SparkContext. java.lang.IllegalArgumentException: System memo
  8. python readlines用法_Python readlines()方法
  9. sklearn pipeline简介
  10. WordPress管理员评论回复添加标注Admin印章