公開日: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
そもそもproftpdの機能なので、FTPサーバーがproftpdで同じ現象なら別のサーバーでも同じ方法で解決できると思う。
.ftpaccess設置後問題なくバックアップも進んで万事解決!
バックアップは毎日取るのが安全。「もしも!」の時に備えましょう。
ただし、BackWPupなど自動化できるツールを使っててもアップデート後には必ず確認すること。
あと、稀にレンタルサーバーの仕様変更などでスクリプトエラーとなりバックアップが取れてない!なんて報告もネット上には上がっているので、たまにはログを確認することも大切。
BackWPupの「設定」メニューから「ジョブ」タブを選択した所に表示されている「最大スクリプト実行時間」が要因
説明文にもあるようにPHPスクリプトがこの最大実行時間を経過する前に再起動されるため、転送中のFTPが切断、リトライを繰り返すので、ここの数値を大きめにすると気持ちよくFTP転送してくれる。