我試圖設置mysql數據庫備份與cron爲了備份mysql數據庫到我的本地NAS存儲。我想將命令存儲在服務器上的.sh文件中,然後使用cron執行它。ssh mysqldump到遠程nas存儲與cron在.sh文件中存儲命令
到現在爲止我已經成功地得到命令將數據庫從遠程服務器,這是保存到我的NAS(QNAP):
mysqldump
--add-drop-table
--comments [database_name]
-u [database_username]
-p[database_password] |
gzip -c |
ssh [nas_user]@[nas_ip_address]
"cat > /share/mysqlBackup/backup-`date +%Y-%m-%d_%H-%M-%S`.sql.gz"
以上工作正常,但問題我有分別是:
我不知道如何在遠程服務器上創建sh文件和
把 命令此命令要求的密碼每次你 執行它 - 有沒有辦法把它放在.sh文件中,這樣我可以 在後臺執行而不提示它/或在命令中定義 密碼?
如何解決上述問題的例子將非常受歡迎。
我相信期望()對話框可以使用,但再次 - 我不熟悉它,它的文檔有點讓我困惑。
感謝deniz,但是我在創建這些rsa鍵時遇到了困難 - 當我鍵入ssh-keygen時,我得到'沒有這樣的文件或目錄'。任何想法? –
你能寫出整個錯誤行嗎 – denizeren
好的 - 我擺脫了錯誤。我已經設法生成密鑰並將它們複製到NAS並且它都可以工作,但是現在它要求密碼 - 因爲我已經設置了密鑰 - 否則它不會真的那麼安全。所以使用'無密碼'選項,我發現並不理想。任何想法如何使用expect()對話框來做到這一點? –