BackWPupのFTP接続が切れ、その後のリトライ時にエラーになる場合の解決法

プラグイン                

  公開日:2018年12月14日  最終更新日:2020年9月28日

先日某クライアント様のWordPressをセットアップした際、BackWPupのバックアップ先にFTPを指定したときのこと。

何度やっても25秒程度で一度切断され、その後のリトライでエラーとなりバックアップ自体が全然取れないことがあった。

BackWPupはWordPressのプラグインで、データベースの内容含めてサイト丸ごとアーカイブし、アーカイブしたデータを指定の方法で、AWS S3やドロップボックス、FTPなどで転送できるプラグインです。
スケジューリングで自動化できるのでよく利用しています。

送信元のログ確認する

ftp_nb_fput():  時期 送信ファイル名 Append/Restart not permitted, try again

「Append/Restart not permitted」つまりは「追加/リスタートは許可されてない」というエラーでリトライに失敗している。

一般的なFTPソフトで保存ディレクトリを覗いてみると「送信ファイル名」のファイルは確かにできている。
けど、容量がどうにも小さい。
つまり、初回接続(新規ファイル作成)時の25秒でアップロードしたデータ分しか保存されていないという事。

上記メッセージでググってみると

FTPサーバー側がFTPファイル追加モードに対応する事

なるほど。じゃあバックアップ先のサーバーは対応してるの?って事でレンタルサーバーのサポートにこのログメッセージとググった情報、さらに

・接続時に使用されたFTPアカウント名
・接続不可を確認された日時
・接続元のグローバルIPアドレス

を送ったら解決方法を教えてくれた。

同じメッセージのエラーなら解決方法はこれ

接続先となるディレクトリに.ftpaccessファイルを設置していただき、
以下の記述を行っていただくことで有効にしていただけますので、
お試しいただけますでしょうか。

■.ftpaccessファイルに記述いただく内容
AllowStoreRestart on

■proftpd公式サイト
http://www.proftpd.org/docs/directives/linked/config_ref_AllowStoreRestart.html

■FAQ
http://www.proftpd.org/docs/faq/linked/faq-ch4.html

そもそもproftpdの機能なので、FTPサーバーがproftpdで同じ現象なら別のサーバーでも同じ方法で解決できると思う。

.ftpaccess設置後問題なくバックアップも進んで万事解決!

バックアップは毎日取るのが安全。「もしも!」の時に備えましょう。
ただし、BackWPupなど自動化できるツールを使っててもアップデート後には必ず確認すること。
あと、稀にレンタルサーバーの仕様変更などでスクリプトエラーとなりバックアップが取れてない!なんて報告もネット上には上がっているので、たまにはログを確認することも大切。

ちなみに25秒程度で切断される原因は

BackWPupの「設定」メニューから「ジョブ」タブを選択した所に表示されている「最大スクリプト実行時間」が要因

BackWPupの設定画面

説明文にもあるようにPHPスクリプトがこの最大実行時間を経過する前に再起動されるため、転送中のFTPが切断、リトライを繰り返すので、ここの数値を大きめにすると気持ちよくFTP転送してくれる。