mysql - 从 Java 和 Shell 运行 cmd 时在 Mysqldump 中添加日期

标签 mysql linux shell java-8 centos

使用 mysqldump 进行备份时,我想在文件名中附加日期。我将命令存储在属性文件中并通过 ProcessBuilder 和 shell 脚本运行它。我尝试了多种添加日期的方法(顺便说一句,这里的所有答案都是仅当我们直接在 linux 中运行命令时)mysqldump -u <user> -p <database> | gzip > <backup>$(date +%Y-%m-%d-%H.%M.%S).sql.gz得到错误:没有找到“+%Y-%m-%d-%H.%M.%S”的表mysqldump -u root -ppassword dbName --result-file=/opt/backup/`date -Iminutes`.dbName.sql得到错误:未知选项-I
有没有办法在命令本身中添加日期?我无法在 java 方法或 shell 脚本中附加日期。

最佳答案

我无法从您的问题中判断您是否在 shell 中运行。如果是这样,请尝试这三行来生成您的备份文件。

 DATE=`date +%Y-%m-%d-%H.%M.%S`
 FILENAME=backup${DATE}.sql.gz
 mysqldump -u user -p database | gzip > ${FILENAME}
注意你应该如何在第一行用反引号括住 date 命令,而不是 ${}。 , 将其结果放入 DATE shell 变量中。

关于mysql - 从 Java 和 Shell 运行 cmd 时在 Mysqldump 中添加日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64443299/

相关文章:

javascript - 在 javascript 变量中传递查询计数

c - 在内核空间中,如何获取ext4格式磁盘上的文件对应的物理地址

php - 当数据库中的单词包含外语字母时找不到

mysql - YEAR(AVG(UNIX(date))) 与 ROUND(AVG(YEAR(date))) 不同

找不到 libcrypto 库错误

linux - centos 7上host文件使用哪个ip是服务器ip,注册域名server

linux - 如何使用 printf 打印多个变量

git - 为什么我的 git log 输出在我通过管道传输时会被破坏?

linux - 将 IPC(指令/周期)连续传递给其他函数或变量

MySQL 到 SQLite 转换器