在 ubuntu 服务器上使用 shell 脚本创建 mysql 个备份

create mysql backups using shell script on ubuntu server

我在 ubuntu 服务器上有一个 mysql 服务器 运行ning。在 mysql 服务器上,我有一个包含一些模式和表的数据库。我每天 运行 一个 mysql_backup.sh 文件和一个 cron 作业来创建我的 mysql 数据库的备份。 mysql_backup.sh 文件包含以下脚本。我检查并注意到,当 mysql_backup.sh 文件 运行 时,它似乎创建了一个只有几行一般 mysql 函数描述的文件。我在下面包含了 mysql_backup.sh 文件创建的一些示例输出。有没有人看到我做错了什么,你能建议如何修改 mysql_backup.sh 脚本,以便它创建数据库的 mysql 备份吗?[=​​15=]

mysql_backup.sh

代码:

#!/bin/bash
mysqldump -u root -p psswd --all-databases > /home/mysql_backups/backup_$(date +%F.%H%M%S).sql

示例当前输出:

Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

如果您将密码放在带有 -p 标志的命令行中,则 -p 和密码之间不能有 space。 -p 标志后面有 space 意味着它将提示您输入密码,而不是从下一个参数中获取密码。下一个参数将被解释为要备份的模式的名称,但由于您还使用了 --all-databases,这会混淆 mysqldump。

为了使用法更清楚,我建议使用这样的长标志:

#!/bin/bash
mysqldump --user=root --password=psswd --all-databases > /home/mysql_backups/backup_$(date +%F.%H%M%S).sql

或者更好的是,根本不要将凭据放在命令行中。将它们放入 options file.