- 2010-04-20 (火) 7:44
- Mumble 1.1 | Mumble 1.2
前回の記事でデータベースファイル全体のメンテナンス方法を紹介しました。
今回は中身のメンテナンスです。
1月以上ログインしていないユーザを削除
なんとなくユーザ登録したけど使われない、証明書をなくしてユーザ登録した名前でログインできない、といったユーザは多いです。
なので、公開サーバとか開いていると謎のユーザが増える一方になります。
具体的な方法ですが、sqlite3 を使ってデータベースを直接編集します。
$ sqlite3 mumble-server.sqlite
ICEインターフェイスやD-Busインターフェイスでユーザの最終ログイン時間を取得できないため、直接データベースファイルを編集する必要があります。(Murmur 1.2.3 からは取得できるようになります。)
一ヶ月以上ログインしていないユーザを一覧表示する。
> select server_id, user_id, name, last_active from users where last_active < datetime('now', 'localtime', '-1 months') and user_id <> 0;
いきなり削除するのもあれなので、まずは確認します。
確認したらそれを削除する。
> delete from users where last_active < datetime('now', 'localtime', '-1 months') and user_id <> 0;
このような感じでクエリを送ると長期間ログインしていないユーザや、その削除ができます。
last_active < datetime(‘now’, ‘localtime’, ‘-1 months’)
この部分は英語的な意味から察することができると思いますが、-1 months を -1 week とか -1 days に変えれば月単位以外でもいけます。
user_id <> 0
こいつはユーザIDが0のユーザを除外する(SuperUserは削除対象にしない)という意図です。
詳しい部分が知りたければSQL文とかでググるといいでしょう。
ユーザ削除の後に前回の記事で紹介したreindexやvacuumをすると効率的かもしれない。
スポンサード リンク
- Newer: Ubuntu 10.04 LTS リリース
- Older: Mumble サーバのメンテ方法