機能: GNU socialのスクリプト

GNUsocial/function

GNU socialには保守用のスクリプトが同梱されています。場合によっては、このスクリプトをcronに登録して定期実行させたりしたほうがよいようです。

スクリプトの中身の詳細は理解できていませんが、参考情報として掲載します。

以下の会話が今回の投稿の発端です。

avatar
SNSで、作りたてのアイコン未設定のユーザーが外部のGNU socialに配信されると、後でアイコンを設定してもGNU social側ではアイコン無しのままなのかな。

avatar
@tak4 !gs こんな感じでscriptsディレクトリーに、cronなどで定期実行してもよさそうなスクリプトがあり、たぶんこれを実行しないとプロフィールは更新されないのだと思います。
gnusocialjp/gnusocial
GNU social is a social communication software used in federated social networks. It is widely supported and has a large userbase. It is already used by the Free...

avatar
有難うございます。 試しに自宅サーバー( gs.bibi.moe) で 全ユーザー更新の「php-7.4 update_activitypub_profiles.php -a」 を試しましたが、まだ実行途中で、かなり時間がかかります。 引数でユーザー単位やサーバー単位の指定もできるみたいなので、本番運用するなら何らかの方法で対象ユーザーを絞った方が良さそうです。 inboxに届いたアクティビティのユーザーを都度更新するとかが理想ですね。

avatar
夜中に実行完了しまたが、わたしのサーバーで試した限り、アイコンは取得されませんでした。(サーバー起因の可能性もある) 不要な(?)プロフィールは削除されるらしく、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

詳細を理解していませんが、ひとまず保守のスクリプトがあって、こういう使い方ができるという紹介でした。

必要になって詳細がわかればまた続報を紹介します。

Comments

Ads Blocker Image Powered by Code Help Pro

広告ブロッカー検知/Ads Blocker Detected

このサイトは会費と広告で運営されています。[Bronze=月220円以上に登録] するか、広告ブロッカーを無効にしてください。

This site is operated by membership and advertise. Please [register at least Bronze=220 JPY/month], or disable ads blocker.

Copied title and URL