2019年11月30日土曜日

【44】AtoMアップグレードの練習(続編)

前回AtoMのアップグレードを失敗。師範の教えに従いその続きをやります。
師範が示した本日のシナリオは次の通り。
(1)AtoMの再構築
(2)WEBでAtoMに適当にデータを入力する
(3)バックアップの作成
(4)再びAtoMを新規構築
(5)バックアップしたデータの移動
師範の指南書(スクリプト集)を、師範代の力を借りて解読しながら1行ずつ実行。

(1)前回壊してしまったので、新しくAtoM2.5.1を入れます。
次の命令文で再構築。
mysql - h localhost -u root -p -e 'DROP database atom; CREATE DATABASE atom CHARACTER SET uft8 COLLATE ytf8_unicode_ci;'
 atomというデータベースを壊して、同じ名前の新しいデータベースを作る。
sudo rm -r /usr/share/nginx/atom
 昔インストールしたatomファイルを廃棄します。
sudo cp -r /home/.../atom251 /usr/share/nginx/atom
 過去にどこかに入れておいたatom2.5.1を所定のnginx以下のatomにコピー
sudo chown -R www-data:www-data /usr/share/nginx/atom
 Nginxから動かせるように、権限を初期のrootからwww-dataに変更

続いてAtoMのブラウザ画面で初期設定を行う。
以下コマンドで最終調整。
sudo php /usr/share/nginx/atom/symfony cc  (キャッシュ消す)
sudo php /usr/share/nginx/atom/symfony search:populate   (AtoM内のインデクスを再構成)
sudo php systemctl restart php7.2-fpm
systemctlコマンドはsystemdの制御に使います。systemdはLinuxの起動処理やシステム管理を行う仕組みです。https://dev.classmethod.jp/cloud/aws/systemd-getting-started/を見てください。
sudo php systemctl restart memcached
https://www.accesstomemory.org/fr/docs/2.5/adminmanual/maintenance/troubleshooting/#troubleshooting-restart-memcached を参照。memcachedは、分散型メモリキャッシュシステムでして、Webサイトの反応を速くします。そいつをリスタート。
sudo systemctl restart atom-worker

(2)ウェブブラウザでATOMデータを入力する
ll /usr/share/nginx/atom/uploads
ll /usr/share/nginx/atom/downloads
を見て、空であることを確認
その後、目録記述を入力した上で画像をアップロード。
ll /usr/share/nginx/atom/uploads
上の命令文でアップロードしたデータがあることを確認。
目録プリント(AtoMウェブサイトのインターフェースの右側にある機能)でcsvファイルでアイテムリストをダウンロード。
ll /usr/share/nginx/atom/downloadsにあるcsvファイルを命令文catで見て、確かに存在していることを確認。

(3)バックアップを作る
cp -r /usr/share/nginx/atom/uploads /.../uploads
cp -r /usr/share/nginx/atom/downloads /.../downloads
アップロードしたデータ、ダウンロードしたデータを、バックアップするために別の場所(上記の事例ではどこかに"uploads""downloads"というディレクトリを作成)にコピー。前回はうっかり/tmpに入れたので、シャットダウンした時点で全部消えました。自分の恥ずかしい過去もtmpファイルに入れて、寝た(シャットダウン)時点で消えてくれてたらどれだけ嬉しいでしょう。僕は、はるか昔に合コンで女性に枝豆を投げつけたことが...いや本題に戻りましょう。
ls -lR /.../uploads/
ls -lR /.../downloads/
で、きちんとコピーできていることを確認しました。
引数の-lで各ファイルの詳細を、-Rでディレトリに含まれる内容を全部含めて表示します。
mysqldump -u atom -p atom > /.../atomdb.sql
もともとつかっていたAtoMのデータベース登録分を別のところに出力しました。
llでバックアップしたファイルatomdb.sqlに容量があることを確認。

(4)再びATOMを新規構築
最新版AtoM2.5.3に差し替えて、(1)と同じ作業を行います。
AtoM2.5.3のインストールはhttps://www.accesstomemory.org/en/docs/2.5/admin-manual/installation/linux/ubuntu-bionic/#download-atomを参照。今回はoption1です。
sudo mkdir /usr/share/nginx/atom
sudo tar xzf atom-2.5.3.tar.gz -C /usr/share/nginx/atom --strip 1
--strip 1は、https://kakakakakku.hatenablog.com/entry/2018/06/13/220940によれば、
展開後のディレクトリを切り捨てて,第2階層をフラットに展開することができるようです。
atom-2.5.3.tar.gzファイルの第1階層を無視して/usr/share/nginx/atomに展開しとるようです。
それで、(1)「AtoMのブラウザ画面で初期設定を行う以下」同様の処理。
で所定の場所にatom2.5.3を入れました。



(5)バックアップしたデータの移動
sudo cp -r /コピー保存したところ/.../uploads /usr/share/nginx/atom/.
sudo cp -r /コピー保存したところ/.../downloads /usr/share/nginx/atom/.
sudo rm -f /usr/share/nginx/atom/downloads/jobs/*
 過去のexportファイルを消去する。

mysql - h localhost -u root -p -e 'DROP database atom; CREATE DATABASE atom CHARACTER SET uft8 COLLATE utf8_unicode_ci;'
mysql -u atom -p atom < atoms.sql
 バックアップしておいたデータベースファイルをSQLに入れる。
cd /usr/share/nginx/atom
sudo php symfony tools:upgrades-sql 
 最新のAtoMにデータベースをくっつける。ミスしたら過去はサヨナラ、あなたのAtoMは赤ん坊です。
sudo php symfony digitalobject:regen-derivatives 
 デジタルファイルとそのアクセス用ファイル、サムネイルを再構成。


以下は以前と同文。

sudo php symfony search:populate
sudo php symfony ccsudo php systemctl restart php7.2-fpm
sudo php systemctl 
restart memcached
sudo systemctl restart atom-worker
はい、今回はうまくいきました。今後は師範のアップデート用の命令文集を今の環境に合わせて少し更新してもよさそうです。
次回はArchivematicaを弟子たちが自力で構築し、AtoMとRsyncです。
日程は、

12/20(金)
です。
皆さん来てください。



最近の投稿

【108】Archives in the Digital Age: The use of AI and machine learning in the Swedish archival sectorを読む

 Gijs Aangenendt氏の修士論文、Archives in the Digital Age: The use of AI and machine learning in the Swedish archival sectorを半分読みました。 前半は、AIを扱ったアーカ...

人気の投稿