mysql - 尝试每天备份 SQL 数据库

标签 mysql sql bash cron

我正在尝试运行一个 cron 作业来每天备份我的 SQL 数据库。这是我正在使用的代码。

/usr/local/mysql/bin/mysqldump -uroot -ppassword --opt database > /path/to/directory/filename.sql    

但是,它返回给我并显示以下错误:
/bin/bash: -c: 第 0 行:寻找匹配的 `'' 时出现意外的 EOF
/bin/bash: -c: 第 1 行:语法错误:意外的文件结尾

想知道解决方案是什么......

最佳答案

如果您需要将 cron 与复杂的 shell 命令(例如特殊字符)一起使用,您应该将它们放在外部脚本中,并且只在 crontab 中调用该脚本。 这样,您还可以手动运行它进行测试。

示例:

  • 将命令放入,例如/usr/local/sbin/my_backup_script.sh
  • 不要忘记在 sh 文件顶部添加 #!/bin/sh
  • 执行 chmod a+x/usr/local/sbin/my_backup_script.sh
  • 测试手动运行脚本是否可以完成任务
  • 然后将 0 4 * * * root/usr/local/sbin/my_backup_script.sh 添加到 crontab
  • (如果您使用的是个人 crontab,则为 0 4 * * */usr/local/sbin/my_backup_script.sh)

(您可以使用“mm hh”形式将 0 4 替换为您希望其运行的时间)

关于mysql - 尝试每天备份 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44102479/

相关文章:

html - linux bash 和 html 变量(导入和导出)

mysql - 将查询编辑为存储过程

database - 这个查询可能吗?

mysql - 如何获取 MySQL 中具有特定行/值的每个人的 ID

mysql - 使用从两个查询返回的数据填充临时表

sql - PLS-00201 : identifier 'CURSOR' must be declared

ruby - 为什么 rvm 需要登录 shell?

mysql - 如何在MySQL中查找日期格式

mysql - 仅获取 2 个结果,每个结果对应具体字段的不同值

linux - bash:用于踢除 localhost 之外的所有 ssh 条目的脚本