Confluence 6 删除垃圾内容

属性(profile)垃圾

属性垃圾的定义为,一个垃圾用户在 Confluence 创建了用户,但是这个用户在自己的属性页面中添加了垃圾 URL。

如果你有很多垃圾用户在你的系统中创建了属性,你可以使用下面的 SQL 很容易的一次性删除。

如何删除属性中的垃圾:

  1. 停止 Confluence 实例然后备份好你的数据库。
    备注:这个步骤应该在你在数据库运行下面的 SQL 之前进行操作。
  2. 找到最后的真实属性:
     SELECT bodycontentid,body FROM bodycontent WHERE contentid IN
      (SELECT contentid FROM content WHERE contenttype='USERINFO')
      ORDER BY bodycontentid DESC;
  3. 查看属性页面中的内容,直到你找到垃圾用户的状态。你可能需要要求一系列的区间。
  4. 找到需要删除的集合:
    CREATE TEMP TABLE killset AS SELECT <a target="_blank" href="https://www.ancii.com/link/v1/aWNkkFZ_ySKXq8H4-S6bJz9fTk0H0KrGGyVAICrkD62PQgHdwxDJysdPY69ioZjWC0ZV37ol0Tzg5j9CSLha9ThypGDNSq52n0F7NSzIuJU/" rel="nofollow" title="bc.bodycontentid,c.contentid,c.username">bc.bodycontentid,c.contentid,c.username</a> FROM
      bodycontent bc JOIN content c ON <a target="_blank" href="https://www.ancii.com/link/v1/aWNkkFZ_ySKXq8H4-S6bJz9fTk0H0KrGGyVAICrkD63_oXpnNSqjUym_fEgABxjMUE8NKPwVT0_94BytiXvcmg/" rel="nofollow" title="bc.contentid=c.contentid">bc.contentid=c.contentid</a> WHERE
      bodycontentid >= BOTTOM_OF_SPAM_RANGE AND bodycontentID <= TOP_OF_SPAM_RANGE
      AND  <a target="_blank" href="https://www.ancii.com/link/v1/aWNkkFZ_ySKXq8H4-S6bJz9fTk0H0KrGGyVAICrkD62jIgRbSzdSOIfAsm3qISgGtUrfQVoSIXrvXo-IZEUTtA/" rel="nofollow" title="c.contenttype=">c.contenttype=</a>'USERINFO';
     
    DELETE FROM bodycontent WHERE bodycontentid IN (SELECT bodycontentid FROM killset);
     
    DELETE FROM links WHERE contentid IN (SELECT contentid FROM killset);
     
    DELETE FROM content WHERE prevver IN (SELECT contentid FROM killset);
     
    DELETE FROM content WHERE pageid IN (SELECT contentid FROM killset);
     
    DELETE FROM content WHERE contentid IN (SELECT contentid FROM killset);
     
    DELETE FROM os_user_group WHERE user_id IN (SELECT id FROM killset k JOIN os_user o ON <a target="_blank" href="https://www.ancii.com/link/v1/aWNkkFZ_ySKXq8H4-S6bJz9fTk0H0KrGGyVAICrkD63jRsD7Y5kJkPKUUtWMTAikTGgI5J_XDB2XDp0lyeJDfQ/" rel="nofollow" title="o.username=k.username);">o.username=k.username);</a>
     
    DELETE FROM os_user WHERE username IN (SELECT username FROM killset);

    如果你使用的是 Confluence 5.6 或者早期的版本,请使用下面的 SQL 命令:

     For Confluence 5.6 and earlier...
  5. 一旦垃圾内容被删除后,重启 Confluence 然后重构内容索引。这操作将会从索引查找对话框中删除任何相关的垃圾内容。

https://www.cwiki.us/display/CONF6ZH/Preventing+and+Cleaning+Up+Spam

相关推荐