MySQL带时间戳的转储

8

我有一个使用MySQL数据库的项目。我想每天备份数据库,所以我使用了以下代码:

mysqldump -h host -u user -p password database > 'location.sql'

我希望文件名能加上时间戳,例如:
今天的文件名将会是 something-07-05-2014 08-00-00
明天的文件名将会是 something-08-05-2014 08-00-00 如何在导出的文件名后添加格式化的时间戳?

2
这不是mysql问题,而是关于你使用的批处理脚本语言(Windows、Bash、Perl、Python等)的问题。 - user330315
我可以从Windows命令行或Linux终端执行此脚本,两者都会得到相同的结果。我的问题是如何在使用mysqldump工具转储MySQL数据库时包含时间戳。 - Ayman
1
您指定的文件名不受工具“mysqldump”的控制。您的问题与MySQL无关,而与您运行此工具的环境“何处”和“如何”有关。 - user330315
@Ayman:对于Windows来说,情况更加复杂,请参考例如https://dev59.com/sXVC5IYBdhLWcg3wtzqs。我建议您使用PowerShell。 - VMai
2个回答

21

你可以使用类似这样的东西

mysqldump -h host -u user -p password database >  $(date "+%b_%d_%Y_%H_%M_%S").sql

11

你可以做

mysqldump -h host -u user -p password database > something-$(date +%d-%m-%Y %H %M %S).sql

你在哪个 shell 中运行这个程序?它似乎无法在 cmd 或 PowerShell 中工作。 - alroc
2
在Bash中也不起作用。命令date +%d-%m-%Y %H %M %S需要像@Pranav的答案中那样加引号。 - Jack Frost
另外,一旦日期格式化得到解决,mysqldump会返回一个语法错误,-bash:syntax error near unexpected token '.sql'。转义似乎没有帮助。echo命令返回预期的结果。echo something-$(date "+%d-%m-%Y %H %M %S").sql > "something-28-10-2014 10 11 29.sql" - Jack Frost

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接