0

これに入る前に、私の思考の流れが正しい軌道に乗っていることを確認したいと思います。

私が取り組んでいる仕事では、PHP で作成されたカレンダー ソフトウェアを 2 つのサーバーにインストールし、単一の mySQL データベースを情報として使用する必要があります。サーバーAでソフトウェアを正常に実行していますが、サーバーBでコードを取得してデータベースに接続できません(さまざまなパスワード暗号化手法に関するエラー)。これを克服できません。

ここで、CRON を使用してデータベースをバックアップし、サーバー A に .sql ファイルを保存すると、CRON スクリプトを使用してそのバックアップをサーバー B の mySQL にインポートできると仮定します。

0,30    *   *   *   *   mysqldump -uUSERNAME -pPASSWORD database > database_backup.sql

0,35    *   *   *   *       mysql -h DB_HOST -u DB_USER -p'DB_PASSWORD' DB_NAME < /url/of/file/database_backup.sql

これはどこか正しいのでしょうか、それともリモート データベース接続との戦いに戻るべきでしょうか?

4

1 に答える 1

2

cron は単なるスケジューラーであり、指定したプログラムを実行するだけであることに気付きましたか? cron にはそれ以上のスマートさはありません。リモートファイルを使用したい場合、そのファイルを取得するのはあなた次第です。それは cron の仕事ではありません。

少なくとも、次のようなものが必要です。

* * * * (wget http://example.com/file.sql > file.sql && mysql < file.sql)

ただし、とにかく、そのような「複雑な」コマンドをcrontabに埋め込むべきではありません。完全なロジックをシェル スクリプトに入れ、cron にそのスクリプトを呼び出させる必要があります。

* * * * /path/to/script/get_sql_file_and_load_into_mysql
于 2013-09-13T19:55:13.430 に答える