WordPressのコンテンツをコマンドラインで別のサーバーへコピー

WordPressのコンテンツをコマンドラインで別のサーバーへコピーするには、主に以下の工程になります。

1. 旧サーバーのWordPressデータベースをエクスポート

  • SSHで旧サーバーにログインし、WordPressインストールディレクトリに移動。
  • MySQLデータベースのバックアップを取得。
  • ysqldump -u ユーザー名 -p データベース名 > ~/backup.sql
  • データベースのSQLファイルを圧縮することも推奨されます。
  • tar -czvf backup_db.tar.gz ~/backup.sql

2. WordPressファイル(テーマ、プラグイン、アップロードなど)を圧縮してバックアップ

  • WordPressのルートディレクトリのすべてのファイルを圧縮。
  • tar -czvf wordpress_files.tar.gz /path/to/wordpress/

3. 圧縮したデータベースファイルとWordPressファイルを新サーバーへ転送

  • scpコマンドで新サーバーに転送。
  • scp wordpress_files.tar.gz user@new-server:/path/to/destination scp backup_db.tar.gz user@new-server:/path/to/destination

4. 新サーバーでファイルを展開し、データベースをインポート

  • 新サーバーにSSHログイン後、ファイルを展開。
  • tar -xzvf wordpress_files.tar.gz -C /path/to/wordpress/ tar -xzvf backup_db.tar.gz
  • MySQLにデータベースをインポート。
  • mysql -u ユーザー名 -p 新データベース名 < backup.sql

5. wp-config.phpの設定やURLの書き換え

  • wp-config.phpでデータベース接続情報を新環境に合わせて編集。
  • 必要に応じてWP-CLIでドメイン名などを置換。
  • wp search-replace '旧ドメイン' '新ドメイン' --all-tables

6. パーミッション設定やキャッシュクリア、プラグインリセットなどを実施し、動作確認

この方法は基本的な手順で、WP-CLI(WordPressコマンドラインツール)を利用するとより便利です。WP-CLIを用いたエクスポート・インポートや置換も可能で、自動化しやすいです。

以上の手順で、WordPressのコンテンツをコマンドラインを使って別サーバーに安全かつ完全に移行できます。

KOBOB2025

写真をお持ちの方は、ぜひ幹事宛てにメールで送って下さい。掲載する写真を募集中です。

2024年のOB会へのリンク

2025年10月4日 飯田橋トリノ(逐次、更新中です…)

幹事:岡島さん、田中さん、堀合(21回生)

集合写真

後列左から20回二瓶さん、24回柏崎さん、18回村井さん、24回吹野さん、17回松橋さん、24回東さん、17回石橋さん、19回畑中さん、20回阿部さん、24回市沢さん、21回堀合

前列左から、25回東さん、19回赤木さん、19回新井さん、17回中塩さん、24回原井さん、24村上さん、21回岡島さん、21田中さん

2次会

OB会開催の案内ハガキ

八戸高校放送部 部室の様子(写真は放送部顧問の平山先生から)

周波数

LTE(Long Term Evolution)で主に使われる無線周波数帯(バンド)は国・事業者によって異なりますが、一般的/代表的なLTEバンドは以下のようになります:

バンド番号周波数範囲備考
12100 MHz (1920–1980 MHz 上り / 2110–2170 MHz 下り)多くの国で利用
31800 MHz (1710–1785MHz / 1805–1880MHz)世界中で広く利用
72600 MHz (2500–2570MHz / 2620–2690MHz)都市部で多い
8900 MHz (880–915MHz / 925–960MHz)一部で利用
18/19800 MHz (815–830MHz / 860–875MHz)日本の一部事業者
20800 MHz (832–862MHz / 791–821MHz)欧州など
28700 MHz (703–748MHz / 758–803MHz)新しい周波数帯
412500 MHz (2496–2690MHz)TDD方式(一部地域)

WiFi

区分主な周波数範囲チャネル例備考
2.4GHz帯2.400~2.4835GHz1~14ch(主に1~13ch)家電と干渉多い
5GHz帯5.170~5.250GHz(W52)36,40,44,48屋内
5.250~5.350GHz(W53)52,56,60,64屋内/DFS必要
5.470~5.730GHz(W56)100,104,…,140屋外可/DFS必要

地デジ

日本の**地上デジタル放送(地デジ)の物理チャンネルごとの中心周波数(MHz)**は下記の通りです

物理CH中心周波数 (MHz)
13473.142857
14479.142857
15485.142857
16491.142857
17497.142857
18503.142857
19509.142857
20515.142857
21521.142857
22527.142857
23533.142857
24539.142857
25545.142857
26551.142857
27557.142857
28563.142857
29569.142857
30575.142857
31581.142857
32587.142857
33593.142857
34599.142857
35605.142857
36611.142857
37617.142857
38623.142857
39629.142857
40635.142857
41641.142857
42647.142857
43653.142857
44659.142857
45665.142857
46671.142857
47677.142857
48683.142857
49689.142857
50695.142857
51701.142857
52707.142857
  • 各チャンネルは6MHz幅です。
  • この一覧は**地デジUHF帯(13ch~52ch、470~710MHz)**に対応します

GPS欺瞞

gpsの欺瞞ですが、簡易的にはGPSシミュレータから偽の信号を出すと、最初は妨害電波のように作用して、しばらくして、偽の信号にロックして欺瞞が成立します。妨害電波では、対象のGPS受信機のロックが解除されるので、それをトリガーに妨害の検知が可能となります。妨害電波(ジャミング)とならずに、欺瞞を成立させるには?

GPSの欺瞞(スプーフィング)を妨害電波(ジャミング)とならずに成立させるには、以下のポイントが重要です。

スプーフィングとジャミングの違い

  • **ジャミング(妨害電波)**は、強いノイズ信号でGPS信号そのものを受信不能にし、受信機のロックを解除させます。このため、受信機側で「GPS信号が消えた」と検知でき、妨害の兆候として扱われやすいです123
  • **スプーフィング(欺瞞)**は、GPS衛星を装った偽の信号を送り、受信機に誤った位置情報を認識させる攻撃です。うまく行えば、受信機は攻撃に気付かず、正常に動作しているように見せかけられます1234

ジャミングとならずに欺瞞を成立させる技術的ポイント

  1. シームレスな信号切り替え(キャプチャ)
    • 受信機が本物の衛星信号から偽信号に「気付かず」ロックを移す必要があります。
    • そのためには、最初から強い偽信号を出してしまうとジャミングと同じくロックが外れてしまうため、まず本物の信号と同じ強度・内容の偽信号を重ねて送信し、徐々に偽信号の強度を上げていきます23
    • さらに、偽信号のタイミングや内容も本物と完全に一致させておき、受信機が「違和感なく」偽信号にロックするよう誘導します(これを「deception spoofing」や「seamless takeover」と呼びます)23
  2. 信号の内容とタイミングの精密な同期
    • 偽信号の内容(エフェメリス、時刻情報など)やタイミングを本物と完全に一致させる必要があります。
    • これにより、受信機は「信号が途切れた」とは認識せず、正常な信号の一部として偽信号を受信し続けます234
  3. 徐々に偽位置へ誘導(ドラッグオフ)
    • 偽信号にロックした後、急激に位置情報を変えると受信機が異常を検知する可能性があるため、位置や時刻情報を「ゆっくり」ずらしていきます。
    • これにより、受信機は自然な形で誤った位置に導かれます23

まとめ

  • いきなり強い偽信号を送るとジャミングとして検知されやすいため、まず本物と同じ内容・強度の偽信号を重ねて送信し、徐々に偽信号にロックさせる「シームレスキャプチャ」が必要です。
  • 信号内容・タイミングの精密な同期と、徐々に位置情報をずらすことが、ジャミングとならずに欺瞞を成立させるカギです234

補足:

  • 近年は到来方向センシングや信号認証技術も進んでおり、こうした高度なスプーフィングも検知されやすくなっています534

gemini deepresearchによる詳細なレポート

macで稼働中のollamaをPC上のOpenWebUiから接続

Macでollamaを起動

$export OLLAMA_HOST=0.0.0.0:11434
$ollama serve

PCのOpenwebui(docker)を起動

docker run -d --name mac-webui -p 3000:8080 -e OLLAMA_BASE_URL=http://192.168.40.17:11434 -e RAG_EMBEDDING_ENGINE=ollama -e RAG_EMBEDDING_MODEL=bge-m3:567m -v mac-webui:/app/backend/data ghcr.io/open-webui/open-webui:main

動作確認

2. Open WebUI設定確認
Open WebUIの管理画面で:

Settings → Admin Settings → Connections
Ollama Base URLが正しく設定されているか確認
「Test Connection」ボタンで接続テスト

RAGでアップロードしたファイルの場所 dockerを起動後に見える

3. ホストPCからのアクセス方法 エクスプローラーのアドレスバーに

\\wsl$\docker-desktop\mnt\docker-desktop-disk\data\docker\volumes\open-webui\_data\uploads\

WindowsからI2Cデバイスを利用

I/F ボードとしてCH341TまたはFT232Hを利用する。

Raspberry piやESPシリーズなどの組み込みシステムの制御に適したマイコンには、GPIO,I2CやSPIなどのポートが備わってるのが特徴の一つです。これらのI/Fを通じて様々なセンサー(例えば温度、湿度、気圧など)や小型表示器、PWM制御器などに接続できます。

一方、WindowsPCなどに広く使われているx86には、残念ながらセンサーなどのハードウェアを直接制御可能なポートがありません。 PCにはUSBポートがありますが、このUSBポートからシリアルやI2Cへ変換するハードウェアを探してみたらCH341Tがamazonなどで安価に販売されていました。

そこで、USBからCH341TとFT232H経由で、次のような機能を試してみました。
(1)AHT20で温度、湿度のデータを取得
(2)OLEDディスプレイSSD1306へ文字表示
(3)PCA9685でサーボモータを駆動

https://github.com/crescentvenus/USBtoI2C

NotebookLMで音声による解説

Power Pins
5V – this is the 5V power from the USB input.
GND – this is the common ground for all power and logic.
3V power output – The new version has a 3.3V power output pin for up to 500mA
GPIO Pins
D4 to D7 – can be used as either digital inputs or outputs.
C0 to C7 – can be used as either digital inputs or outputs.
I2C Pins
SCL – the I2C clock signal is on D0.
SDA – the I2C data is on D1+D2.
I2C switch – The new version has a switch that connects D1 and D2 for easy I2C interfacing. Move the switch to ON to use I2C and/or the STEMMA QT connector. You can then use either D1 or D2 for SDA.
On the original version only: Note that there are two pins (D1 and D2) which must be tied together and treated as one to use I2C.

SPI Pins
SCLK – the SPI clock signal is on D0.
MOSI – Microcontroller Out, Serial In is on D1.
MISO – Microcontroller In, Serial Out is on D2.
CS0 – Chip Select is on D3. This is not used by Blinka, instead use one of the GPIO pins from above (see example section).

ST7789ピン FT232Hピン 説明

VCC 3.3V 電源(3.3V推奨、5Vは不可の場合あり)

GND   GND グランド

SCL    D0 (SCLK)

SPIクロック信号  SDA D1 (MOSI) SPIデータ入力(Master Out Slave In)

RES     D5 リセットピン

DC     D6 データ/コマンド選択ピン

BLK     3.3VまたはD7 バックライト(オプション、3.3VまたはGPIOで制御)

CircuitPython Libraries on any Computer with FT232H

https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h/windows

GPIOサンプル

OUTPUT サンプル
import time
import board
import digitalio

led = digitalio.DigitalInOut(board.C0)
led.direction = digitalio.Direction.OUTPUT

while True:
led.value = True
time.sleep(0.5)
led.value = False
time.sleep(0.5)

INPUT サンプル
import board
import digitalio

led = digitalio.DigitalInOut(board.C0)
led.direction = digitalio.Direction.OUTPUT

button = digitalio.DigitalInOut(board.C1)
button.direction = digitalio.Direction.INPUT

while True:
led.value = button.value

I2Cサンプル
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT

import time

import board

from adafruit_bme280 import basic as adafruit_bme280

# Create sensor object, using the board’s default I2C bus.
i2c = board.I2C() # uses board.SCL and board.SDA
# i2c = board.STEMMA_I2C() # For using the built-in STEMMA QT connector on a microcontroller
bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c)

# OR create sensor object, using the board’s default SPI bus.
# import digitalio
# spi = board.SPI()
# bme_cs = digitalio.DigitalInOut(board.D10)
# bme280 = adafruit_bme280.Adafruit_BME280_SPI(spi, bme_cs)

# change this to match the location’s pressure (hPa) at sea level
bme280.sea_level_pressure = 1013.25

while True:
print(“\nTemperature: %0.1f C” % bme280.temperature)
print(“Humidity: %0.1f %%” % bme280.relative_humidity)
print(“Pressure: %0.1f hPa” % bme280.pressure)
print(“Altitude = %0.2f meters” % bme280.altitude)
time.sleep(2)

SPIサンプル
import board
import digitalio
import adafruit_rgb_display.ili9341 as ili9341
from PIL import Image

# Setup display
cs_pin = digitalio.DigitalInOut(board.C0)
dc_pin = digitalio.DigitalInOut(board.C1)
disp = ili9341.ILI9341(board.SPI(), cs=cs_pin, dc=dc_pin, baudrate=64000000)

# Load image and convert to RGB
image = Image.open(‘blinka.bmp’).convert(‘RGB’)

# Display it (rotated by 90 deg)
disp.image(image, 90)