报告 Nextcloud 中每个用户的使用情况

如果我们仍然想更多地利用我们的 Nextcloud 安装,并且我们想知道每个用户消耗了多少… 这是您的帖子! 它看起来会很棒,因为我们将直接从我们的 Grafana 看到它!

 

我们将使用一个名为“用户使用情况报告”的脚本’ 我们可以从 Nextcloud Apps 网站, 我们将下载与我们的 Nextcloud 安装相对应的版本, 在这篇文章中,我们使用 Nextcloud 13. 我们将其保留在 Nextcloud 服务器内的 App 目录中, 为此, 像这样的事情会帮助我们, 最后,我们访问 OCC 二进制文件所在的目录并使其可执行:

[源代码]MV user_usage_report-1.0.1.tar.gz /VAR/www/NextCloud/Apps/
cd /var/www/nextcloud/apps
tar zxfv user_usage_report-1.0.1.tar.gz
RM user_usage_report-1.0.1.tar.gz
cd /var/www/nextcloud
sudo chmod +x occ[/源代码]

 

然后, 我们可以直接尝试看看这个精彩的脚本给我们带来了什么. 要查看管理员用户数据使用情况报告,我们可以运行以下命令并查看其输出:

[源代码]sudo -u www-data ./occ 使用情况报告:生成管理员
“管理员”,“2018 年 8 月 20 日T20:35:50+00:00",-2,7518695,20,0,0,0[/源代码]

 

奥莱! 我们已经在某种程度上看到了单个用户的使用, 不错, 如果我们想看到所有人? 好吧,删除用户 🙂

[源代码]sudo -u www-data ./occ 使用情况报告:生成
“管理员”,“2018 年 8 月 20 日T20:36:32+00:00",-2,7518695,20,0,0,0
“88133B49-A6A5-4035-83EB-3193BDD19E3B”,“2018 年 8 月 20 日T20:36:32+00:00",-2,7952664,32,1,0,16
“57D0CD27-A319-4A36-92D3-E541B7DD84C9”,“2018 年 8 月 20 日T20:36:32+00:00",-2,"",,0,0,0
“5BA5460C-FF2F-4DAC-8C1F-5427729DDD4D”,“2018 年 8 月 20 日T20:36:32+00:00",-2,7435791,12,0,0,0
“61F42891-B220-43AB-9568-4390753DDBF5”,“2018 年 8 月 20 日T20:36:32+00:00",-2,"",,0,0,0
“272407CC-6361-49F4-A3B5-F8A26FDDDE18”,“2018 年 8 月 20 日T20:36:32+00:00",-2,"",,0,0,0
“755784D0-F0AE-4DF9-BD88-E3A5B5BDD374”,“2018 年 8 月 20 日T20:36:32+00:00",-2,7435791,12,0,0,0
“BA886970-5134-45FD-8D42-D11DCDDE57A”,“2018 年 8 月 20 日T20:36:32+00:00",-2,"",,0,0,0
“A6E28617-BB75-4080-A7B3-9F22E4DD184A”,“2018 年 8 月 20 日T20:36:32+00:00",-2,"",,0,0,0
“3009D13B-0236-48D4-B771-604932DD47F1”,“2018 年 8 月 20 日T20:36:32+00:00",-2,"",,0,0,0[/源代码]

 

我从中得到的是 Nextcloud 用户的标识符, 我已将它们与 Active Directory 同步. 所有这些都可以导出为 CSV 格式,并在此处和帖子中停止. 您可以使用 Excel 随心所欲地制作图表,仅此而已. 由于我们看到的是具有以下字段的 CSV 格式:

  • 用户 ID.
  • 报告日期.
  • 如果您启用了配额 (-3 这将是无限的, -2 未固定).
  • 文件夹中占用的空间.
  • 主页上的文件数.
  • 共享的项目数.
  • 创建的文件数.
  • 查看或下载的文件数.

 

在我们关心的情况下, 如果你知道我要在哪里拍摄… 我的目的是创建一个脚本,将此信息导出到 MySQL 服务器, 将所有这些数据保存在一个表中,然后以更简单的方式使用 Grafana.

就我而言,我创建了这个脚本来为我完成这项工作, 我称之为 “/根/nextcloud_uso_a_mysql.sh” Con el siguiente contenido:

[源代码]cd /var/www/nextcloud/
sudo -u www-data ./occ 使用情况报告:生成 > /TMP/nextcloud_uso1.csv
噢 '{GSUB 系列(/\"/,"")};1’ /TMP/nextcloud_uso1.csv > /TMP/nextcloud_uso.csv
sed -i -e 's/88133B49-A6A5-4035-83EB-3193B4DD9D3B/赫克托·埃雷罗/g’ /TMP/nextcloud_uso.csv
sed -i -e 's/755784D0-F0AE-4DF9-BD88-E3A5B5DDD74/Seila Fernandez/g’ /TMP/nextcloud_uso.csv
sed -i -e 's/A6E28617-BB75-4080-A7B3-9F22E4DD8DA/大卫·格雷罗/g’ /TMP/nextcloud_uso.csv
SCP /TMP/nextcloud_uso.csv pi@192.168.1.197:/首页/PI
mysqlimport -h SERVIDOR_MYSQL -uroot -pPASSWORD NOMBRE_BD –fields-terminated-by=',’ /首页/PI/nextcloud_uso.csv[/源代码]

 

正如我们所看到的,我几乎无法将数据导出到 CSV, 我删除了所有困扰他的双引号, 并将让我吐出的标识符替换为我的 AD 用户的正确名称. 最后,我使用 scp 将 csv 文件上传到 MySQL 服务器并导入, 它将从我们导入的文件的名称中获取表名. 我们保存脚本并使其可执行 🙂

我们可以直接在 cron 中编程它, 就我而言, 如果每天运行一次,那对我来说就足够了,我有绰绰有余, 因此,在此示例中,我将其编程为 00:01 我会说. 每天都会将新数据导入 MySQL 表!

[源代码]crontab -e
1 0 * * * /根/nextcloud_uso_a_mysql.sh[/源代码]

 

我在 MySQL 中使用的表称为 'nextcloud_uso’ ,由用户, A 的儿子, 配额, 空间, 文件, 共享, 创建, 移动和日期, 正如您将看到的,这些不仅仅是多汁的数据,然后用 Grafana 处理它们… 我把脚本留给你,以防你想创建与我相同结构的表格:

[源代码]创建表 'nextcloud_uso' (
'user' 字符(40) NULL 默认 NULL,
'fetxa' 字符(10) NULL 默认 NULL,
'quota' FLOAT NULL DEFAULT NULL,
'space' FLOAT NULL DEFAULT NULL,
'files' FLOAT NULL DEFAULT NULL,
'shared' FLOAT NULL DEFAULT NULL,
'created' FLOAT NULL DEFAULT NULL,
'moved' FLOAT NULL DEFAULT NULL,
'date' 时间戳 NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
COLLATE='latin1_swedish_ci’
引擎=InnoDB
ROW_FORMAT=紧凑
;[/源代码]

 

现在剩下的就是可视化数据! 以下是几个示例, where 在第一个, 通过一点奶酪,我们将看到当前正在使用我们数据的数据, 以图形化的方式,快速浏览一下,我们就会知道谁是吸走所有空间🙂的恶棍 在右侧,我给您留下一张图表,说明我们用户的数据使用将如何增长. 但要小心! 在表格中,我们有更多奇怪的事实! 如何知道谁分享最多。, 谁最有效, 等, 等…

 

我给你留下了我在 Grafana 中使用的查询的提示,以便它看起来相同, 或者哇, 你更好! 在仪表板上, 创造:

  • 奶酪或饼图: 这将是一个针对我们的 MySQL 数据源添加我们感兴趣的序列的问题, 其中之一的示例:

[源代码]选择 Date as time_sec, 用户作为指标, espacio 作为 nextcloud_uso 的值,其中 user = 'Hector Herrero’ 按日期 DESC LIMIT 排序 1[/源代码]

  • Gráfica o Graph: 一样, 添加我们想要绘制的序列, 例:

[源代码]SELECT espacio 作为值, “赫克托·埃雷罗" 作为公制, UNIX_TIMESTAMP(日期) 作为 time_sec FROM nextcloud_uso 其中 $__timeFilter(日期) 和 user = 'Hector Herrero’ 按关闭日期排序[/源代码]

 

如果您对 Grafana 有点迷茫,需要知道如何安装它, 退房 这篇文章 这可以帮助您, 那么,您最多必须针对 MySQL 服务器创建连接器或数据源! 井, 我希望你喜欢它! 一个人不控制自己的环境是因为他不想!!! 我就这样! 皮条客, 皮条客…

 

推荐文章

作者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 请随时与我联系, 我会尽我所能帮助你, 分享就是生活 ;) . 享受文档!!!