さくらレンタルサーバに構築した trac サイトのコメントスパムを削除する

trac サイトを構築した時のメモ の続き。
以前構築した 別館 のチケットにコメントスパムが投稿されているのに気付いた。本人ですらたまにしか見ないのに。恐るべしスパマー。

今のところ trac にチケットのコメントを削除する方法は用意されていないが、見た目に宜しくないのでsqlite を使って削除した。
そのときの手順をメモしておく。

sqlite

とりあえず sqlite をインストールしないと話にならないのでインストール。

%wget http://sqlite.org/sqlite-3.3.7.tar.gz
%tar xzvf sqlite-3.3.7.tar.gz
%cd sqlite-3.3.7
%./configure --prefix=$HOME/local
%make
%make install

trac.db を修正

http://trac.edgewall.org/ticket/454 を参考にSQLを投げるだけ。
まずはさくらに接続して、$repo/db/trac.db を開く。

sqlite3 trac.db

すると sqlite3 がコマンドを待つので、

SELECT * FROM ticket_change WHERE ticket=3

と入力する。(最後の数字は[修正したいチケット番号]に変更する)
すると以下のようにチケットの修正一覧が表示される。

3|1154847902|goodspeed|status|new|closed
3|1158265726|Brendan|comment||Some links for you・・・

この中からスパムによって修正されたレコードを探して、そのレコードの2列目の数字(この場合は[1158265726])を使ってDELETE文を投げる。

DELETE FROM ticket_change WHERE ticket=3 and time=1158265726

sqlite は .quit で終了する。