爲啓動器和測試命令執行自動數據庫備份。我發現對通過BASH CLI一個文本文件中的每一行執行一個動作是值得的效果:我創建的數據庫名稱的列表在文件的每一行上運行MySQLdump;未找到命令
# while read line ; do COMMAND $line ; done
文件:
# mysql -uroot -e "show databases" > databases
然後對該文件進行了以下嘗試,看看它是否能正常工作。
# while read line ; do "mysqldump -uroot $line > /dbbackups/$line.sql" ; done
表面上看,這將是正常工作,但我遇到了以下錯誤(S):
[04:58:46] [[email protected] database-backup-testing]# cat databases | while read line ; do "mysqldump -uroot $line > $line.sql" ; done
-bash: mysqldump -uroot Database > Database.sql: command not found
-bash: mysqldump -uroot information_schema > information_schema.sql: command not found
-bash: mysqldump -uroot cphulkd > cphulkd.sql: command not found
我不知道爲什麼它是給找不到命令,當明顯,輸出這些命令似乎是正確的。我也嘗試使用mysqldump(/ usr/bin/mysqldump)的絕對路徑,但它給出了相同的錯誤(s)。
任何人都可以填寫我爲什麼發生這種情況?
======================
編輯:固定
如果報價被刪除該腳本; IE:
# cat databases | while read line ; do mysqldump -uroot $line > $line.sql ; done
具有引號顯然是將它作爲字符串執行而不是命令。
在bash中嘗試「哪個mysqldump」。 「ls + chmod」確保「您可以執行mysqldump」 – neohope 2013-03-28 10:13:10
您需要指定mysqldump的路徑。但爲什麼不使用它的['--all-databases'](http://dev.mysql.com/doc/en/mysqldump.html#option_mysqldump_all-databases)選項? – eggyal 2013-03-28 10:13:39
使用絕對路徑,我已經說上面我已經試過了,返回如下: ---- -bash:在/ usr/bin中/ mysqldump的-uroot數據庫> Database.sql:沒有這樣的文件或目錄 – 2013-03-28 10:20:12