我必须使用手动创建大量数据库备份mysqldump
,例如像这样:
mysqldump -uroot -proot my-db > my-db.sql
我想知道是否有一种简单的方法可以将当前日期或时间戳包含到文件名中,以便文件看起来像这样:(my-db-20150917.sql
或者另一种格式也可以,甚至是时间戳)。
答案1
我如何为我的文件名添加日期戳?
要在文件名中包含当前时间/日期,请结合使用date
和命令替换:
mysqldump -uroot -proot my-db > my-db-`date +%Y%m%d`.sql
这man
页面date
解释了您可以使用的其他选项;但在这种情况下,您可能还对包括时间感兴趣:
mysqldump -uroot -proot my-db > my-db-`date +%Y%m%d-%H%M`.sql
等等,这个‘命令替换’是什么?
命令替换会扩展为命令的输出。这些命令在子 shell 中执行,其
stdout
数据就是替换语法扩展后的结果。
基本上,date -%Y%m%d
输出20150917
,我们使用反引号 ( `
) 形式的命令替换将该输出包含在您提供的用于备份数据库的命令中。我们同样可以使用:
mysqldump -uroot -proot my-db > my-db-$(date +%Y%m%d).sql
以达到相同的结果。