{
 "generated": "2026-11-04T18:00",
 "ok": true,
 "data_to": "2026-11-04",
 "disk": {
  "total_gb": 317,
  "used_gb": 46,
  "free_gb": 257,
  "data_gb": 24.4
 },
 "dir_gb": {
  "chromestore": 0.32,
  "github": 1.81,
  "metaads": 0.46,
  "appstore": 18.96,
  "indie": 0.16,
  "forsale": 0.18,
  "shopifyapps": 0.24,
  "macappstore": 0.46,
  "crossing": 0.01,
  "adwatch": 0.0,
  "googleads": 0.1,
  "tiktokads": 0.02,
  "x": 0.06,
  "hackernews": 0.17,
  "googleplay": 1.19,
  "producthunt": 0.29
 },
 "libs": [
  {
   "name": "chromestore",
   "at": "00:30",
   "how": "/etc/cron.d/chromestore-collector",
   "note": [],
   "db": {
    "path": "/data/chromestore/chromestore.duckdb",
    "size_mb": 210,
    "mtime": "2026-11-04T01:47"
   },
   "due": "2026-11-04T00:30",
   "log": "/data/chromestore/daily.log",
   "last_start": "2026-11-04T00:30",
   "last_end": "2026-11-04T01:47",
   "state": "正常",
   "ok": true,
   "core": false
  },
  {
   "name": "github",
   "at": "01:10",
   "how": "/etc/cron.d/github-collector",
   "note": [],
   "db": {
    "path": "/data/github/github.duckdb",
    "size_mb": 1033,
    "mtime": "2026-11-04T03:49"
   },
   "due": "2026-11-04T01:10",
   "log": "/data/github/daily.log",
   "last_start": null,
   "last_end": "2026-11-04T03:49",
   "state": "正常",
   "ok": true,
   "core": true
  },
  {
   "name": "metaads",
   "at": "01:30",
   "how": "/etc/cron.d/metaads-collector",
   "note": [],
   "db": {
    "path": "/data/metaads/metaads.duckdb",
    "size_mb": 344,
    "mtime": "2026-11-04T02:21"
   },
   "due": "2026-11-04T01:30",
   "log": "/data/metaads/daily.log",
   "last_start": "2026-11-04T01:30",
   "last_end": "2026-11-04T02:21",
   "state": "正常",
   "ok": true,
   "core": true
  },
  {
   "name": "appstore",
   "at": "03:00",
   "how": "root crontab run_full.sh;10:30 / 16:30 补评论",
   "note": [
    "有残留 .building.tmp"
   ],
   "db": {
    "path": "/data/appstore/appstore.duckdb",
    "size_mb": 4191,
    "mtime": "2026-11-04T16:30"
   },
   "due": "2026-11-04T03:00",
   "log": "/data/appstore/collect-full-2026-11-04.log",
   "last_start": null,
   "last_end": "2026-11-04T06:19",
   "state": "正常",
   "ok": true,
   "core": true
  },
  {
   "name": "indie",
   "at": "03:20",
   "how": "/etc/cron.d/indie-collector",
   "note": [],
   "db": {
    "path": "/data/indie/indie.duckdb",
    "size_mb": 21,
    "mtime": "2026-11-04T03:53"
   },
   "due": "2026-11-04T03:20",
   "log": "/data/indie/daily.log",
   "last_start": "2026-11-04T03:20",
   "last_end": "2026-11-04T03:53",
   "state": "正常",
   "ok": true,
   "core": true
  },
  {
   "name": "forsale",
   "at": "04:00",
   "how": "/etc/cron.d/forsale-collector",
   "note": [],
   "db": {
    "path": "/data/forsale/forsale.duckdb",
    "size_mb": 9,
    "mtime": "2026-11-04T04:14"
   },
   "due": "2026-11-04T04:00",
   "log": "/data/forsale/daily.log",
   "last_start": "2026-11-04T04:00",
   "last_end": "2026-11-04T04:14",
   "state": "正常",
   "ok": true,
   "core": false
  },
  {
   "name": "shopifyapps",
   "at": "04:40",
   "how": "/etc/cron.d/shopifyapps-collector",
   "note": [],
   "db": {
    "path": "/data/shopifyapps/shopifyapps.duckdb",
    "size_mb": 67,
    "mtime": "2026-11-04T05:51"
   },
   "due": "2026-11-04T04:40",
   "log": "/data/shopifyapps/daily.log",
   "last_start": "2026-11-04T04:40",
   "last_end": "2026-11-04T05:51",
   "state": "正常",
   "ok": true,
   "core": false
  },
  {
   "name": "macappstore",
   "at": "05:00",
   "how": "/etc/cron.d/macappstore-collector",
   "note": [],
   "db": {
    "path": "/data/macappstore/macappstore.duckdb",
    "size_mb": 325,
    "mtime": "2026-11-04T05:07"
   },
   "due": "2026-11-04T05:00",
   "log": "/data/macappstore/daily.log",
   "last_start": "2026-11-04T05:00",
   "last_end": "2026-11-04T05:07",
   "state": "正常",
   "ok": true,
   "core": false
  },
  {
   "name": "crossing",
   "at": "06:00",
   "how": "扫描员 daily.sh(06:00)调它,等 App Store 建完",
   "note": [],
   "db": {
    "path": "/data/crossing/state.json",
    "size_mb": 2,
    "mtime": "2026-11-04T06:20"
   },
   "due": "2026-11-04T06:00",
   "log": "/data/crossing/daily.log",
   "last_start": "2026-11-04T06:20",
   "last_end": "2026-11-04T06:20",
   "state": "正常",
   "ok": true,
   "core": false
  },
  {
   "name": "adwatch",
   "at": "07:40",
   "how": "googleads / tiktokads 的 daily.sh 开头调它",
   "note": [],
   "db": {
    "path": "/data/adwatch/watchlist.jsonl",
    "size_mb": 1,
    "mtime": "2026-11-04T08:00"
   },
   "due": "2026-11-04T07:40",
   "last_start": null,
   "last_end": "2026-11-04T08:00",
   "state": "正常",
   "ok": true,
   "core": false
  },
  {
   "name": "googleads",
   "at": "07:40",
   "how": "/etc/cron.d/googleads-collector",
   "note": [],
   "db": {
    "path": "/data/googleads/googleads.duckdb",
    "size_mb": 44,
    "mtime": "2026-11-04T13:33"
   },
   "due": "2026-11-04T07:40",
   "log": "/data/googleads/daily.log",
   "last_start": "2026-11-04T07:40",
   "last_end": "2026-11-04T13:33",
   "state": "正常",
   "ok": true,
   "core": false
  },
  {
   "name": "tiktokads",
   "at": "08:00",
   "how": "/etc/cron.d/tiktokads-collector",
   "note": [],
   "db": {
    "path": "/data/tiktokads/tiktokads.duckdb",
    "size_mb": 12,
    "mtime": "2026-11-04T10:33"
   },
   "due": "2026-11-04T08:00",
   "log": "/data/tiktokads/daily.log",
   "last_start": null,
   "last_end": "2026-11-04T10:33",
   "state": "正常",
   "ok": true,
   "core": false
  },
  {
   "name": "x",
   "at": "08:10 / 20:10",
   "how": "/etc/cron.d/x-collector",
   "note": [],
   "db": {
    "path": "/data/x/x.duckdb",
    "size_mb": 45,
    "mtime": "2026-11-04T08:11"
   },
   "due": "2026-11-04T08:10",
   "log": "/data/x/daily.log",
   "last_start": "2026-11-04T08:10",
   "last_end": "2026-11-04T08:11",
   "state": "正常",
   "ok": true,
   "core": false
  },
  {
   "name": "hackernews",
   "at": "08:30",
   "how": "/etc/cron.d/hackernews-collector",
   "note": [],
   "db": {
    "path": "/data/hackernews/hackernews.duckdb",
    "size_mb": 124,
    "mtime": "2026-11-04T17:17"
   },
   "due": "2026-11-04T08:30",
   "log": "/data/hackernews/daily.log",
   "last_start": "2026-11-04T08:30",
   "last_end": "2026-11-04T08:30",
   "hourly_last_end": "2026-11-04T17:17",
   "state": "正常",
   "ok": true,
   "core": true
  },
  {
   "name": "googleplay",
   "at": "10:30",
   "how": "/etc/cron.d/googleplay-collector",
   "note": [],
   "db": {
    "path": "/data/googleplay/googleplay.duckdb",
    "size_mb": 593,
    "mtime": "2026-11-04T10:54"
   },
   "due": "2026-11-04T10:30",
   "log": "/data/googleplay/daily.log",
   "last_start": "2026-11-04T10:30",
   "last_end": "2026-11-04T10:54",
   "state": "正常",
   "ok": true,
   "core": true
  },
  {
   "name": "producthunt",
   "at": "16:30",
   "how": "/etc/cron.d/producthunt-collector",
   "note": [],
   "db": {
    "path": "/data/producthunt/producthunt.duckdb",
    "size_mb": 179,
    "mtime": "2026-11-04T17:07"
   },
   "due": "2026-11-04T16:30",
   "log": "/data/producthunt/daily.log",
   "last_start": "2026-11-04T16:30",
   "last_end": "2026-11-04T16:41",
   "hourly_last_end": "2026-11-04T17:07",
   "state": "正常",
   "ok": true,
   "core": true
  }
 ]
}