Cron

在不暴露 /etc/crontab 中的密碼的情況下進行 cron 計劃的數據庫備份(轉儲)

  • May 8, 2017

我使用以下/etc/crontab程式碼在最近 30 天內創建數據庫的每日備份:

0 8 * * * mysqldump -u root -PASSWORD --all-databases > /root/backups/mysql/db.sql
1 8 * * * zip /root/backups/mysql/db-$(date +\%F-\%T-).sql.zip /root/backups/mysql/db.sql
2 8 * * * rm /root/backups/mysql/db.sql
2 8 * * * find /root/backups/mysql/* -mtime +30 -exec rm {} \;

我的問題:

我必須把我的密碼放在哪裡-PASSWORD。這樣,如果我錯誤地輸入以更改此文件中的某些內容並且我附近的人看到了它,我的密碼就會暴露出來。

是否可以在不輸入密碼的情況下使用腳本?或者,你知道類似的語法不會強迫我在那里為 cronjob 寫密碼嗎?

  1. 創建一個腳本來執行完整的轉儲、備份和清理。
  2. 安排腳本。

此外,密碼mysql也可以儲存在受保護的文件中,不需要在命令行中提供。

MySQL 有一個“密碼安全的最終使用者指南”文件,您可能需要查閱。

總結該文件:

在您的主目錄中創建.my.cnf並添加密碼,如下所示:

[client]
password=your_pass

然後刪除其他使用者對該文件的讀取權限:

$ chmod 600 .my.cnf

或者,等效地,

$ chmod u=rw,go-rwx .my.cnf

該文件,如果命名並放置在您的主目錄中,客戶端程序(以及).my.cnf將自動使用該文件。mysql``mysqldump

不過,請務必將備份等放入其自己的腳本並安排它。這將比許多 cron 作業更容易維護。

引用自:https://unix.stackexchange.com/questions/363637