Home -> SynologyのNAS(DSM)の運用・活用 -> ワードプレス(WordPress)のバックアップ
バックアップのバックアップ
このサイトはワードプレス(WordPress)を使っています。
ワードプレスにはバックアップ用の有料・無料のプラグインが多数ありますが、使っているバックアップのプラグインは、自サーバーにバックアップを取るものを使っています。
自サーバーに余裕があれば何世代もバックアップできるのですが、最近では余裕がなくなってきていたので、家にあるSynologyのNASへバックアップファイルをコピーして、SynologyのNAS上で何世代かのバックアップを保存するようにしました。
これならサーバー側の不具合にも安心できます。
要諦は「DSMのタスクスケジューラーにSCPコマンドを設定する」事になります。
DSM(Synology NAS)の「コントロール パネル」には、「タスク スケジューラー」がありますのでそこに設定します。
ワードプレスのバックアップ用のプラグインの中にはバックアップ先をクラウド上のストレージを指定できるものもあります。バックアップファイルが小さくて、バックアップ先ストレージに余裕があるのであれば、そちらの方が簡単だと思います。
DSM (Synology DiskStation Manager) は、すべての Synology NAS に搭載された、直感的で使いやすいオペレーティングシステムの事です。(公式)
(シノロジー)Synology NAS DSM タスク スケジュール
DSM(Synology NAS)でscpコマンドが使用できます。
ちなみに、ssh-addコマンドやssh-agentコマンドは入っていないようでした。
scpはSecure Copyの略で、ssh通信でファイル転送を行うためのコマンドです。サイズ制限があって4GBまでしか転送できないと言われることもありますが、scpの制限ではありません。実際、バックアップのzipファイルは4GBを超えてますが転送できています。
事前に行うこと SSH接続 設定
scpでSynology NASとWEBサーバーを接続するのに、公開キー認証(公開鍵認証)の設定を行います。
パスフレーズ無しの設定で、
SSH接続 Synology NAS -> WEBサーバー
で行いました。
DSM タスク スケジューラーの設定

DSM コントロールパネル、サービスグループの中に「タスク スケジューラー」があります。
クリックします。

タスク スケジューラーから、「作成」をクリックします。

DSM タスク スケジューラー
「作成」→「予約タスク」→「ユーザー指定のスクリプト」を選択します。
「タスクを作成」から「全般」タグ

タスク名を記入します。
実行ユーザー名を選択できます。
今回は、コピー先フォルダにアクセス権のあるユーザーである必要があります。
「タスクを作成」から「スケジュール」タグ

今回、スケジュールは週に一度の実行で、水曜日に設定しました。
実行日数は、(<- 日本語が変で、日数ではなく「実行日」という事らしい)
毎日:日曜日〜土曜日
ウイークエンド:日曜日と土曜日
平日:月曜日〜金曜日
もしくは、曜日指定(複数曜日が可能)が選べます。
時間は、
初回開始時間の設定、
終了時間の設定、
その間(開始と終了の間)に、どんなサイクルで実行を行うか、
(毎分、5分毎〜毎時、2時間毎〜、いろいろ)
という設定ができます。
「毎日」は日に一度実行するだけの、繰り返しのない実行です。(多分)
水曜日の1時20分に一度だけ実行します。
「タスクを作成」から「タスク設定」タグ。

コマンドを実行の「ユーザー指定のスクリプト」欄へ、実行させるコマンドを入力します。
/bin/scp -r -P [WEBサーバーポート] [WEBユーザー名]@[WEBサーバーIPアドレス]:[WEBサーバー対象フォルダ] [Synology NAS バックアップ先フォルダ名]
「OK」を押します。
DSM タスク スケジューラー スクリプト出力先設定

タスク スケジューラーの画面から「設定」をクリックします。

「フォルダを選択」を押すと、共有フォルダのリストが出ます。
「フォルダの作成」も表示されます。
メリットもデメリットも思い浮かばないので、適当なフォルダを割り当てました。
「OK」を押します。
スクリプトのテスト実行

作成したタスクを実行して、動作を確認します。

タスク作成時は「wordpress BACKUP」としましたが、途中で「wordpress r2fish BACKUP」とタスク名は変更しました。
「はい」を押して実行します。
実行中の画面は出ません。
スクリプトのテスト実行 確認

実行状況の確認や、実行結果は、
タスクスケジューラー->「操作」->「結果を表示」で行います。
実行中

実行中は現在の状態が「実行中」になります。
停止時間(終了時間)も未表示です。
実行完了

正常に終了すると現在の状態が「正常(0)」になりました。
停止時間(終了時間)も表示されます。
スクリプト欄には実行されたスクリプトが表示されました。
FileStationで確認すると、WEBサーバーのバックアップフォルダがコピーされていることが確認できました。
補足:WEBサーバーのファイルの削除
WEBサーバーでは、crontabを使ってファイルを定期的に削除します。
こんな感じ、
0 3 * * 1 /bin/rm -rf [/WEBサーバーのフォルダ/]*.zip
実行時間は、分、時、日、月、曜日(0:日曜日 〜 6:土曜日)の指定になり、
0分、3時、日付指定無し、月指定無し、月曜日にrm(削除)コマンドを実行します。
コメント