Pythonを利用したWordPress バックアップ
目次
概要
All-in-One WP Migrationを利用したバックアップを定期的に取得しているのですが、 All-in-One WP Migrationは定期的なバックアップ設定ができないため。Pythonとseleniumを利用したWordPress バックアップを検討しました。
seleniumを利用してwebブラウザ経由で All-in-One WP Migrationのバックアップ操作を行います。
サンプルソース
サンプルソースを下記に記載します。
from selenium import webdriver #seleniumのimport
from selenium.webdriver import Firefox, FirefoxOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from _ast import If
def wordpressBackUp(wordpressSite,username,password):
# -----------------------------------------------------------------------------
# Firefoxのドライバ取得
# -----------------------------------------------------------------------------
#開始ログ
print('-------------------------------------------------------------')
print('◎'+wordpressSite)
print('-------------------------------------------------------------')
# -----------------------------------------------------------------------------
#ログイン画面へアクセス
# -----------------------------------------------------------------------------
options = FirefoxOptions()
options.add_argument('-headless')
browser = Firefox(options=options)
loginURL = wordpressSite + "/wp-login.php"
browser.get(loginURL)
time.sleep(3)
# "サイト名 ‹ ログイン"と表示される
print(browser.title)
# -----------------------------------------------------------------------------
#ログイン
# -----------------------------------------------------------------------------
browser.find_element_by_css_selector("#user_login").send_keys(username)
browser.find_element_by_xpath("//*[@id='user_pass']").send_keys(password)
browser.find_element_by_css_selector("#wp-submit").click()
time.sleep(5)
#"ダッシュボード ‹ サイト名 — WordPress"と表示される
print(browser.title)
# -----------------------------------------------------------------------------
#管理者メールアドレスの確認
# -----------------------------------------------------------------------------
if '管理者メールアドレスの確認' in browser.title :
browser.find_element_by_css_selector("#correct-admin-email").click()
time.sleep(20)
# -----------------------------------------------------------------------------
#バックアップ
# -----------------------------------------------------------------------------
loginURL = wordpressSite + "/wp-admin/admin.php?page=ai1wm_backups"
browser.get(loginURL)
time.sleep(5)
print(browser.title)
browser.find_element_by_css_selector("#ai1wm-create-backup").click()
time.sleep(60)
# -----------------------------------------------------------------------------
# ブラウザ終了
# -----------------------------------------------------------------------------
browser.quit()
print("終了しました。")
バックアップファイルのローカルPCへのダウンロード
All-in-One WP Migrationでバックアップしたファイルは、WinSCPのコマンドラインでローカルPCにダウンロードします。
WinSCPのコマンドラインでローカルPCにダウンロードするコマンドは下記の通りです。
mkdir %sBackUpDirPath%
set sBackUpDay=[yyyymmdd]
rem ============================================================================
rem バックアップファイルダウンロード
rem ============================================================================
cd C:\Program Files (x86)\WinSCP
WinSCP.exe [接続設定] /console /command^
"option batch on" ^
"option confirm off" ^
"get [wordpressコンテンツを格納しているディレクトリ]/wp-content/ai1wm-backups/*%sBackUpDay%*.wpress [バックアップファイル格納先パス]" ^
"close" ^
"exit"
echo バックアップ完了
rem ============================================================================
rem バックアップファイルダウンロード
rem ============================================================================
move [バックアップファイル格納先パス]*.wpress %sBackUpDirPath%
echo バックアップ処理完了
pause
ジョブ設定
定期的な実行ができるように、OSのタスク追加を行えば完了です。
関連記事
- DaVinci Resolve インストール手順関連記事: Cytoscapeのインストール PythonをVisual Studioにインストール Pyth… 続きを読む »
- PythonでのLorenz回転動画作成目次 PythonでのLorenz回転動画作成 Pythonを利用してLorenz回転動画を作成してみました。… 続きを読む »
- LaTexの数式エディタ texstudioのインストール手順目次 概要 LaTexの数式エディタであるtexstudioのインストール手順をまとてみました。texstud… 続きを読む »
- 【数学 大学入試過去問題】回転移動行列の帰納法証明問題解説目次 概要 回転移動行列の帰納法証明問題が大学入試で出題されていますので解説します。回転移動行列は、応用範囲が… 続きを読む »
- 基本情報技術者令和3年免除試験 午前問56 Service Level Agreement目次 問題 SLAを説明したものはどれか。 選択 回答 ウ:サービス及びサービス目標値に関するサービス提供者と… 続きを読む »