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のタスク追加を行えば完了です。
関連記事
- LaTexの数式エディタ texstudioのインストール手順目次1 概要2 TexLiveのインストール手順3 texstudioのインストール手順を4 編集後記5 関連… 続きを読む »
- 【数学 大学入試過去問題】回転移動行列の帰納法証明問題解説目次1 概要2 問題3 解答4 前提知識4.1 帰納法4.2 三角関数の加法定理5 今後の学習拡大6 編集後記… 続きを読む »
- 基本情報技術者令和3年免除試験 午前問56 Service Level Agreement目次1 問題2 選択3 回答4 解説5 編集後記6 関連記事7 最近の投稿8 過去の投稿9 管理者が運営してい… 続きを読む »
- 基本情報 R3年免除 Pm 問51 EVM(Earned Value Management)管理目次1 問題2 選択3 回答4 解説5 関連YouTube6 編集後記7 関連記事8 最近の投稿9 過去の投稿… 続きを読む »
- TeraTermの自動ログイン マクロ(Windows編)目次1 概要2 「ttl」ファイルを「Tera Term Nacro Interpreter」に設定3 Ter… 続きを読む »