GNU socialには保守用のスクリプトが同梱されています。場合によっては、このスクリプトをcronに登録して定期実行させたりしたほうがよいようです。
スクリプトの中身の詳細は理解できていませんが、参考情報として掲載します。
以下の会話が今回の投稿の発端です。
SNSで、作りたてのアイコン未設定のユーザーが外部のGNU socialに配信されると、後でアイコンを設定してもGNU social側ではアイコン無しのままなのかな。
ぐぬ管 (GNU social JP管理人)|gnusocialjp@gnusocial.jp@tak4 !gs こんな感じでscriptsディレクトリーに、cronなどで定期実行してもよさそうなスクリプトがあり、たぶんこれを実行しないとプロフィールは更新されないのだと思います。 https://notabug.org/gnusocialjp/gnusocial/src/main/plugins/ActivityPub/scripts/update_activitypub_profiles.php
有難うございます。 試しに自宅サーバー( gs.bibi.moe) で 全ユーザー更新の「php-7.4 update_activitypub_profiles.php -a」 を試しましたが、まだ実行途中で、かなり時間がかかります。 引数でユーザー単位やサーバー単位の指定もできるみたいなので、本番運用するなら何らかの方法で対象ユーザーを絞った方が良さそうです。 inboxに届いたアクティビティのユーザーを都度更新するとかが理想ですね。
夜中に実行完了しまたが、わたしのサーバーで試した限り、アイコンは取得されませんでした。(サーバー起因の可能性もある) 不要な(?)プロフィールは削除されるらしく、1度目の実行ではユーザーが4000件ある旨がコンソールに表示されましたが、2度目の実行では400件程でした。 ユーザーを指定して1件づつ実行できる様なので、今後詳しく調べるなら、それで検証ですね。
「Re: is there a server maintenance script?」のメーリングリストの投稿が情報源です。
古いメッセージや、キャッシュのクリアーなどいくつか保守用スクリプトが存在します。以下が基本です。
- scripts
- plugins/OStatus/scripts
- plugins/ActivityPub/scripts
他にもプラグインのscriptsディレクトリーがスクリプトです。
古いメッセージの削除スクリプトはたぶんありません。代わりに、停止したサーバーを削除する方法があり、以下のようなコマンドで行います。
cd /var/www/gnusocial/scripts/
mysql -u gnusocial -pPASSWORD gnusocial -ss \
-e "SELECT id FROM profile WHERE profileurl LIKE '%SERVER_URL%';" |
while read -r id; do
php deleteprofile.php -y --id "$id"
done
この他に、gs_cleanと呼んでいる以下の定期タスクを投稿主は毎日実行しているそうです。
sudo -u www-data php /var/www/gnusocial/plugins/OStatus/scripts/fixup-shadow.php &&
sudo -u www-data php /var/www/gnusocial/plugins/OStatus/scripts/rm_bad_feedsubs.php &&
sudo -u www-data php /var/www/gnusocial/plugins/OStatus/scripts/gcfeeds.php &&
sudo -u www-data php /var/www/gnusocial/modules/TheFreeNetwork/scripts/fix_duplicates.php
sudo -u www-data php /var/www/gnusocial/scripts/clean_profiles.php -y &&
sudo -u www-data php /var/www/gnusocial/scripts/clean_file_table.php -y &&
sudo -u www-data php /var/www/gnusocial/scripts/delete_orphan_files.php -y &&
sudo -u www-data php /var/www/gnusocial/scripts/fixup_deletions.php &&
sudo -u www-data php /var/www/gnusocial/scripts/updateuris.php &&
sudo -u www-data php /var/www/gnusocial/scripts/updateurls.php
詳細を理解していませんが、ひとまず保守のスクリプトがあって、こういう使い方ができるという紹介でした。
必要になって詳細がわかればまた続報を紹介します。
詳細プロフィール。SNS: X Twitter/GS=gnusocialjp@gnusocial.jp/WP=gnusocialjp@web.gnusocial.jp。2022-07-17からgnusocial.jpとweb.gnusocial.jpのサイトを運営しています。WordPressで分散SNSに参加しています。このアカウントの投稿に返信すると、サイトのコメント欄にも反映されます。
Comments