/etc/crontabにパスワードを公開せずにcron予約データベースのバックアップ(ダンプ)を作成します。

/etc/crontabにパスワードを公開せずにcron予約データベースのバックアップ(ダンプ)を作成します。

次の/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

  1. 完全なダンプ、バックアップ、およびクリーンアップを実行するスクリプトを作成します。

  2. スクリプトをスケジュールします。

また、パスワードはmysql保護されたファイルに保存され、コマンドラインに入力する必要はありません。

MySQLでは、エンドユーザーパスワードセキュリティガイド「検討したい文書。

文書をまとめると:

.my.cnf次のようにホームディレクトリにパスワードを作成して追加します。

[client]
password=your_pass

次に、ファイルに対する他のユーザーの読み取り権限を削除します。

$ chmod 600 .my.cnf

または等しく、

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

ファイル名を指定してホームディレクトリに保存すると、.my.cnfそのファイルはクライアントプログラムでも自動的に使用されます。mysqlmysqldump

ただし、バックアップなどを独自のスクリプトに入れて予約してください。これは、多くのcronジョブよりもメンテナンスが簡単です。

おすすめ記事