linux bash脚本日志输出

时间:2017-05-19 14:48:29

标签: mysql linux shell logfile

我无法在脚本中输出到我的日志文件中。备份运行成功但日志文件为空。当我运行脚本时,我得到"警告:在命令行界面上使用密码可能不安全。"所以至少应该在日志文件中。 (我使用的是.key文件)

mysqldump  -u root -p$Pass   --all-databases | gzip > fulldbdmp-$(date +%m%d%Y).dump.gz 2> file.log

3 个答案:

答案 0 :(得分:2)

我同意this的答案,但似乎需要添加另一个参数( -v )来启用详细输出,例如mysqldump -v -u root -p$Pass --all-databases 2>file.log | gzip > fulldbdmp-$(date +%m%d%Y).dump.gz

答案 1 :(得分:1)

那是因为,只有gzip执行错误才会进入文件。要获得所需内容,请使用 -

mysqldump -u root -p$Pass --all-databases 2>file.log | gzip > fulldbdmp-$(date +%m%d%Y).dump.gz

答案 2 :(得分:1)

您可以在终端上看到错误消息,这意味着它不会进入日志文件。

正如其他人所提到的,您正在从管道的gzip元素重定向stderr,而不是mysqldump元素。

如果您将自己的pipline视为一系列元素,可能会清楚发生了什么:

  • mysqldump -u root -p$Pass --all-databases
  • gzip > fulldbdmp-$(date +%m%d%Y).dump.gz 2> file.log

你可能在此之后:

  • mysqldump -u root -p$Pass --all-databases 2> file.log
  • gzip > fulldbdmp-$(date +%m%d%Y).dump.gz

哪个成为:

mysqldump -u root -p$Pass --all-databases 2> file.log \ |
  gzip > fulldbdmp-$(date +%m%d%Y).dump.gz

旁注:我强烈建议您忽略以下警告。这是有原因的。见6.1.2.1 End-User Guidelines for Password Security

  

警告:在命令行界面上使用密码可能不安全