Synology NAS で WEBサーバーのバックアップ(自動)

Synology NAS DSM タスク スケジュールSynology
Synology NAS DSM タスク スケジュール

Synology

DSM (Synology DiskStation Manager) は、すべての Synology NAS に搭載された、直感的で使いやすいオペレーティングシステムの事です。(公式)

(シノロジー)Synology NAS DSM タスク スケジュール

このサイトのWEBサーバーのバックアップ(正確にはwordpressのバックアップ)を定期的にSynologyのNASへ退避(コピー)させます。
要諦は「DSMのタスクスケジューラーにSCPコマンドを設定する」事になります。
DSM(Synology NAS)の「コントロール パネル」には、「タスク スケジューラー」がありますのでそこに設定します。

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 コントロールパネル

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

DSM タスク スケジューラー
DSM タスク スケジューラー

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

DSM タスク スケジューラー
DSM タスク スケジューラー

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

「タスクを作成」から「全般」タグ

DSM タスク スケジューラー タスクを作成、全般
DSM タスク スケジューラー タスクを作成、全般

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

「タスクを作成」から「スケジュール」タグ

DSM タスク スケジューラー タスクを作成、スケジュール
DSM タスク スケジューラー タスクを作成、スケジュール

今回、スケジュールは週に一度の実行で、水曜日に設定しました。

実行日数は、(<- 日本語が変で、日数ではなく「実行日」という事らしい)
毎日:日曜日〜土曜日
ウイークエンド:日曜日と土曜日
平日:月曜日〜金曜日
もしくは、曜日指定(複数曜日が可能)が選べます。

時間は、
初回開始時間の設定、
終了時間の設定、
その間(開始と終了の間)に、どんなサイクルで実行を行うか、
(毎分、5分毎〜毎時、2時間毎〜、いろいろ)
という設定ができます。
「毎日」は日に一度実行するだけの、繰り返しのない実行です。(多分)

水曜日の1時20分に一度だけ実行します。

「タスクを作成」から「タスク設定」タグ。

DSM タスク スケジューラー タスクを作成、タスク設定
DSM タスク スケジューラー タスクを作成、タスク設定

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

DSM タスク スケジューラー スクリプト出力先設定

DSM タスク スケジューラー
DSM タスク スケジューラー

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

DSM タスク スケジューラー スクリプト出力先設定
DSM タスク スケジューラー スクリプト出力先設定

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

スクリプトのテスト実行

DSM タスク スケジューラー スクリプト実行
DSM タスク スケジューラー スクリプト実行

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

DSM タスク スケジューラー スクリプト実行
DSM タスク スケジューラー スクリプト実行

タスク作成時は「wordpress BACKUP」としましたが、途中で「wordpress r2fish BACKUP」とタスク名は変更しました。

「はい」を押して実行します。
実行中の画面は出ません。

スクリプトのテスト実行 確認

スクリプトのテスト実行 確認
スクリプトのテスト実行 確認

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

実行中

スクリプトのテスト実行 確認
スクリプトのテスト実行 確認

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

実行完了

スクリプトのテスト実行 確認
スクリプトのテスト実行 確認

正常に終了すると現在の状態が「正常(0)」になりました。
停止時間(終了時間)も表示されます。
スクリプト欄には実行されたスクリプトが表示されました。
FileStationで確認すると、WEBサーバーのバックアップフォルダがコピーされていることが確認できました。

補足:WEBサーバーのファイルの削除

WEBサーバーでは、crontabを使ってファイルを定期的に削除します。
こんな感じ、
0 3 * * 1 /bin/rm -rf [/WEBサーバーのフォルダ/]*.zip
実行時間は、分、時、日、月、曜日(0:日曜日 〜 6:土曜日)の指定になり、
0分、3時、日付指定無し、月指定無し、月曜日にrm(削除)コマンドを実行します。

コメント

興味があればクリック!サイト運営にご協力を
タイトルとURLをコピーしました