簡體   English   中英

linux bash腳本日志輸出

[英]linux bash script log output

我無法在腳本中將輸出輸出到日志文件中。 備份成功運行,但是日志文件為空。 當我運行腳本時,出現“警告:在命令行界面上使用密碼可能不安全”。 因此至少應該在日志文件中。 (我正在使用.key文件)

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

我同意這個答案,但似乎需要添加另一個參數( -v )以啟用詳細輸出,例如mysqldump -v -u root -p$Pass --all-databases 2>file.log | gzip > fulldbdmp-$(date +%m%d%Y).dump.gz mysqldump -v -u root -p$Pass --all-databases 2>file.log | gzip > fulldbdmp-$(date +%m%d%Y).dump.gz

那是因為,只有gzip執行過程中的錯誤才會進入文件。 要獲得想要的東西,請使用-

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

您可以在終端上看到錯誤消息的事實意味着它不會進入日志文件。

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

如果您將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最終用戶密碼安全准則

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM