月: 2025年5月

NextcloudのWebからのアップデート失敗時の対処。(コマンドラインによるNextcloudのアップデート)

NextcloudはWebからアップデートが行えますが、

  • バックアップ
  • ダウンロード
  • 整合性チェック

等で失敗し、リトライをしてもまた同じところで詰まるというケースが非常に多いです。

(例ではDownloading)で失敗しています。

そこで、その回避策(というかより安定している手段)として、コマンドラインによるアップデートを実施します。

作業確認環境

筆者環境です。マイナーバージョンなどは実施環境に合わせます。

  • Ubuntu 22.04
  • Nextcloud 31.03 → 31.04へのアップグレード
  • Apache (ユーザwww-dataで実行)
  • MySQL
  • php 8.2.28

さっくりとした手順

  1. メンテナンスモードを有効化します。
  2. Nextcloud一式のバックアップを行います。
  3. Nextcloudで用いているDBのバックアップを取ります。
  4. コマンドラインでアップデートがあるかのチェックを行います。
  5. コマンドラインでNextcloudのアップグレードを行います。
  6. バージョンアップを確認します。

メンテナンスモードを有効化

  • Nextcloudのルートディレクトリ移動
cd /path/to/nextcloud/root/directory && pwd

自分の環境に合わせます。(筆者環境/home/www-data/nextcloud)

  • メンテナンスモード有効化
sudo -u www-data php occ maintenance:mode --on
  • メンテナンスモード確認

運用中のNextcloudのURLにアクセスし、メンテナンスモードであることを確認します。

Nextcloudのバックアップ

  • Nextcloudの一式バックアップ
sudo -u www-data cp -pir /home/www-data/nextcloud /path/to/backup/directory/nextcloud.$(date +%Y%m%d)
  • 退避前、退避先、バックアップ先のアクセス権限などはそれぞれ自分の環境に合わせます。
  • このバックアップ方法はあくまでも例です。
  • ※プログラムによっては非常に膨大なファイル数が予想されます。適切なバックアップ手段を考慮してください。
  • vpsなどで動かしている場合は、スナップショットを撮っておいて、後から復元した方が確実です。

  • バックアップ確認
ls -l /path/to/backup/directory/nextcloud.$(date +%Y%m%d)

退避先にディレクトリファイル一式があることを確認します。

mysqldumpでバックアップを取得する

  • 作業ディレクトリに移動
cd /hoge && pwd

任意のディレクトリを指定します。

  • DBバックアップ作成
mysqldump -h localhost -u nextcloud -p --no-tablespaces --single-transaction nextcloud > nextcloud_backup.$(date +%Y%m%d).sql

DB名やユーザーは自分の環境に合わせます。

  • DBバックアップ作成確認
ls -la nextcloud_backup.$(date +%Y%m%d).sql

ファイルがあることを確認します。

Nextcloudのアップグレードチェック

  • Nextcloudのルートディレクトリ移動
cd /path/to/nextcloud/root/directory && pwd

自分の環境に合わせます。(筆者環境/home/www-data/nextcloud)

  • occコマンドによるアップグレード確認
sudo -u www-data php occ update:check

表示例

Nextcloud 31.0.4 is available. Get more information on how to update at https://docs.nextcloud.com/server/31/admin_manual/maintenance/upgrade.html.
Update for side_menu to version 5.1.0 is available.
Update for spreed to version 21.0.4 is available.

と出たので、アップグレードはコマンドラインでも有効です。

コマンドラインによるアップグレード

sudo -u www-data php occ upgrade
  • 新しいバージョンのダウンロード
  • コードの展開
  • データベーススキーマの更新
  • アプリの更新

を一括で行ってくれるコマンドです。

Keep maintenance mode active? [y/N] 

nでメンテナンス画面から抜けます。

Webでのアップグレード確認

管理者権限でNextcloudにブラウザでアクセスし、

  1. 管理画面からアップグレードされていること
  2. 他の機能が使えること

を確認できれば成功です。


切り戻し

失敗したときの手順です。再度、バックアップ一式があることを確認してください。なお、失敗したことを前提にしているため、再度の切り戻しは一切考慮しません。

  • アップグレードに失敗したファイル一式の削除
sudo rm -rf /home/www-data/nextcloud 
  • バックアップからの切り戻し
sudo mv /path/to/backup/directory/nextcloud.$(date +%Y%m%d) /home/www-data/nextcloud
  • 管理者権限でMySQLにログインする
mysql -u root -p
  • 対象のDBを確認する
SHOW DATABASES;

nextcloudが動いているDBであることを再確認してください。

  • 本当に削除すべきDBかを確認する
SELECT COUNT(*) FROM nextcloud.oc_users;
  • 不具合が発生したDBを削除する

二回ほど深呼吸して、落ち着いて作業しましょう。

DROP DATABASE nextcloud;
  • DBを再作成する
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  • MySQLから抜ける
EXIT
  • DB復元
mysql -h localhost -u nextcloud -p nextcloud < /hoge/nextcloud_backup.$(date +%Y%m%d).sql

この後、メンテナンスモードを解除して、以前と同じ状態か確認します。

sudo -u www-data php occ maintenance:mode --off

作業後:バックアップDBの削除

平文でSQLがサーバ上にあるのは危険な状態なので、以下の措置を執ります。

  • 作業ディレクトリに移動
cd /hoge && pwd

バックアップを行ったディレクトリを指定します。

  • DBバックアップ確認
ls -la nextcloud_backup.$(date +%Y%m%d).sql

ファイルがあることを確認します。

  • バックアップしたDBの削除
shred -u nextcloud_backup.$(date +%Y%m%d).sql
  • DBバックアップ削除確認
ls -la nextcloud_backup.$(date +%Y%m%d).sql

ファイルが無いことを確認します。

『ユミアのアトリエ』リグナス地方のメインシナリオ完了までに得られる宝物庫の鍵一覧。(ネタバレあり)

本作でのネックとなる「宝物庫の鍵」をどこで手に入れるかのメモです。

今回、三周目で改めてカウントした結果、

「リグナス地方のメインシナリオ完了まで(最初のヴィランと戦うまで)」19個の宝物庫の鍵が手に入ることを確認しました。

これは、

  • ノーマルクエスト
  • 開拓任務
  • キャラクタークエスト

をカバーできる数です。

前提

  • シバーシュ地方の開拓任務を終え、「炸裂弾」の略式調合が可能である状態です。
  • 一部の箇所はリペアツールが必要です。
  • シナリオ進行によっては進めないところもあります。

名もなき廃墟

比較的手に入りやすいところ。

  • 障壁のギミック解除
  • 銃撃による封印解除

など、チュートリアル的な場所です。

辺境地の砂浜東

中州の島にある廃墟。階段を上り、周囲にあるスイッチを狙撃で解除していきます。

アトリエ

アトリエの扉をスイッチ(狙撃含む)で解除した先にあります。

坑道内作業員詰所

廃墟の二階、壁ジャンプや隙間を通った先に宝物庫の鍵が納められている宝箱があります。

残塔の入口近く

こちらのノーマルクエストの達成時に必要な柵・塀の設計図がある宝物庫のすぐそばの塔です。

塔の上にあるスイッチを狙撃して解除します。

祈念の社 シレンタ草原・東部

正確には、記念の社の中継器を起動する廃墟のところ。(リペアツールがなくても北から回り込んで到達できます)

赤い岩を所定の位置に置くギミックで解除可能です。

レッドウルフの生息地北

ジップラインのすぐ側にある塔の上。

このスイッチを解除した上で、最上階にある宝箱の封印を解きます。

アルバーの集落

建物の影にあります。ギミックも何もない潔い保管場所です。

帝国第八研究所ハウジングエリア(要炸裂弾)

ハウジングエリアの近くに、炸裂弾で破壊可能な壁があります。その先にある宝箱を開けて鍵を入手します。

物資貯蔵庫

遺構の屋上にある宝箱に鍵があります。

研究所隔離倉庫

リペアツールで入口の鍵を開けた先、遺跡内に鍵の宝箱があります。

賢者の住処跡

2Fの扉のスイッチを解除して、宝箱の鍵がある宝箱にアクセスします。

ドゥクス大灯台ハウジングエリア北

建物内の3つのスイッチを射撃で解除します。

白霊岩の採取地近くの洞窟(要炸裂弾)

  1. 洞窟の入口を炸裂弾で破壊
  2. 洞窟の主、でかぷにを倒して

宝箱を解除します。

境界研究棟

遺構に入るにはリペアツール・機械が必要です。

二階のバルコニーに鍵がある宝箱があります。

辺境の砂浜南西

建物に入り、赤い岩を所定の位置に動かしてギミックを解除します。

帝国第八研究所の離れ

※ シナリオの都合上、ランドマークの解放ができなくともアクセスは可能です。

研究の2階からスイッチを解除して、離れに移動できます。離れの2階に宝物庫の鍵があります。

帝国第八研究所2階

※ シナリオの都合上、ランドマークの解放ができなくともアクセスは可能です。

研究の2階、壁の先に宝物庫の鍵が納められている宝箱があります。

マルゴー中央観測施設

シナリオが進行しなければ到達できない場所です。

施設を上へとのぼっていき、赤い岩を所定の位置に置くギミックで宝箱が解除できます。

以上19箇所。

  • シバーシュ地方からアクセスできるリグナス地方
  • シナリオ進行で再訪するリグナス地方

を含めれば恐らく21個までは確認できます。

Powered by WordPress & Theme by Anders Norén