2017-05-19 162 views
0

我在輸入腳本中的日誌文件時遇到了問題。備份運行成功,但日誌文件爲空。當我運行腳本時,我會得到「警告:在命令行界面上使用密碼可能不安全。」所以至少應該在日誌文件中。 (我正在使用.key文件)linux bash腳本日誌輸出

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

回答

1

那是因爲,只有你的gzip執行錯誤進入文件。爲了得到你想要的東西,用 -

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

+0

是的,這一切纔有意義。謝謝 – user3508766

2

this答案達成一致,但現在看來,這是需要添加另一個參數(-v)啓用詳細輸出,如mysqldump -v -u root -p$Pass --all-databases 2>file.log | gzip > fulldbdmp-$(date +%m%d%Y).dump.gz

+0

受此[本答案](https://dba.stackexchange.com/a/14307)和[官方文檔](https://dev.mysql.com/doc/refman/5.7/en/mysqldump。 html) –

+0

非常好..我相信我沒有意識到它..謝謝。 Spasibo - Vitalik – user3508766

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

警告:在命令行界面上使用密碼可以是不安全的