批量删除 jumpserver 节点

由于 jumpserver 中删除节点只能一部分一部分的删除,无法进行大量批量删除,分析后发现 jumpserver 中节点相关信息主要存储在以下数据表中:

assets_authbook

assets_asset_nodes

assets_historicalauthbook

ops_adhoc_hosts

ops_commandexecution_hosts

perms_assetpermission_assets

assets_asset

因此,若想批量删除节点,则需要删除这些节点中的对应节点的数据。

首先,使用 SQL 命令拼组删除命令(除 assets_asset 表):

SELECT
        CONCAT(
                'delete from assets_asset_nodes where asset_id =\'',
                `id`,
                '\';'
        ),
        CONCAT(
                'delete from ops_commandexecution_hosts where asset_id =\'',
                `id`,
                '\';'
        ),
        CONCAT(
                'delete from assets_authbook where asset_id =\'',
                `id`,
                '\';'
        ),
        CONCAT(
                'delete from assets_asset_nodes where asset_id =\'',
                `id`,
                '\';'
        ),
        CONCAT(
                'delete from assets_historicalauthbook where asset_id =\'',
                `id`,
                '\';'
        ),
        CONCAT(
                'delete from ops_adhoc_hosts where asset_id =\'',
                `id`,
                '\';'
        ),
        CONCAT(
                'delete from perms_assetpermission_assets where asset_id =\'',
                `id`,
                '\';'
        )
FROM
        assets_asset
WHERE
        ip like '%192.168.199%'

然后执行得到的 SQL 语句。

最后再删除 assets_asset 表中的数据。

DELETE FROM
        assets_asset
WHERE
        ip LIKE '%192.168.199%'

最后发现 WEB 终端更新的服务器数量还是原来的数量,点刷新没有作用,此时需要修改 assets_node 表中的参数使数值变化。

此外,还可以使用 JumpServer 服务 API 执行删除节点操作,详见JumpServer API

参考:

https://blog.csdn.net/madman163/article/details/115579814