Skip to content

cdsl-research/dsm_wordpress_backup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

このレポジトリについて

Synology製、タスクスケジューラー対応NASにWordPressのバックアップを行う為のレポジトリです。データの転送にはrsyncを使用します。

開発・動作環境

製品 : DS1621xs+
DSMバージョン : DSM 7.0.1-42218 Update 3

初期設定

  1. DSMの設定画面からホームディレクトリとSSH接続を有効にします。
  • コントロールパネル → ユーザーとグループ → 詳細 → ユーサーホームサービスを有効にする DSM Setting
  • コントロールパネル → 端末とSNMP → 端末 → SSHサービスを有効化する DSM Setting
  1. DSMにSSH接続を行い、鍵の生成を行います。
ssh-keygen
  1. WordPressが駆動しているサーバにDSMの秘密鍵を配置し、DSMからパスワード無しでSSH接続できるようにします。
  2. WordPressが駆動しているMysqlサーバに接続し、dump可能な権限を付与したユーザを作成します。
CREATE USER backup_user;
GRANT SELECT, LOCK TABLES, SHOW VIEW, RELOAD, REPLICATION CLIENT ON *.* TO 'backup_user'@'%' identified by 'pass';
  1. NASにスクリプトを配置します。

  2. SlackでWebhook URLを取得します。

  3. 設定ファイルを変更します。

  4. nas_wordpress_backup.shを実行し、バックアップファイルが転送された事を確認します。

  5. DSMのタスクスケジューラーでバックアップ処理を行う時間にnas_wordpress_backup.shが実行されるように設定します。

  • コントロールパネル → タスクスケジューラー を開きます。
    DSM Setting
  • 作成 → 予約タスク → ユーザー指定のスクリプトから新規タスクを作成します。 DSM Setting
  • 実行ユーザ・実行時間とユーザ指定のスクリプトへbash <スクリプトのパス>を入力します。 DSM Setting

スクリプトについて

  • nas_wordpress_backup.sh
    WordPressサーバへリモートコマンドを実行し、バックアップファイルの作成とDSMへの転送を行います。
  • config.sh
    バックアップスクリプトに必要な設定ファイルです。

設定ファイル

config.sh

変数名 内容 設定例
DsmSlackPostPath Slack通知用スクリプト保存先 DsmSlackPostPath="./slack_post.sh"
SlackWebHook Slack通知用WebHookURL SlackWebHook="https://hooks.slack.com/services/--"
SlackPostName Slack通知用機器名 SlackPostName="NAS"
DsmFileGenerations バックアップファイル保存数 DsmFileGenerations="5"
DsmFilePath バックアップファイル保存先 DsmFilePath="/volume1/wordpress_backup/"
RemoteHost リモートサーバのアドレス RemoteHost="192.168.201.51"
RemoteUser リモートサーバのユーザー RemoteUser="web"
DsmPrivateKey リモートサーバ接続時使用鍵 DsmPrivateKey="/var/services/homes/cdsl/.ssh/id_rsa"
RemoteWebRootDirectory バックアップ対象ディレクトリ RemoteWebRootDirectory="/var/www/html"
RemoteMysqlUser リモートサーバデータベースユーザ RemoteMysqlUser="user"
RemoteMysqlPass リモートサーバデータベースパスワード RemoteMysqlPass="password"
RemoteMysqlDbName リモートサーバデータベース名 RemoteMysqlDbName="wp"

About

A script for wordpress backup.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages