Gladex Agent Logs

Agent run logs & app logs · env: prod · LAN-only investor surface

Overview
Run logs2523 files, 131.2 MB
Latest run logrun-20261024-231500-2057.log
Log directory/data/agent-logs
App log directory/opt/startup/prod/logs
Run logs (newest first, last 50)
FileSizeModified (UTC)
run-20261024-231500-2057.log 214 KB 2026-10-24 21:28:16
run-20261024-230148-2056.log 467 B 2026-10-24 21:04:49
run-20261024-224843-2055.log 467 B 2026-10-24 20:51:37
run-20261024-223535-2054.log 467 B 2026-10-24 20:38:33
run-20261024-222210-2053.log 467 B 2026-10-24 20:25:24
run-20261024-220840-2052.log 467 B 2026-10-24 20:11:59
run-20261024-215520-2051.log 467 B 2026-10-24 19:58:29
run-20261024-214204-2050.log 467 B 2026-10-24 19:45:08
run-20261024-212837-2049.log 467 B 2026-10-24 19:31:53
run-20261024-211504-2048.log 467 B 2026-10-24 19:18:26
run-20261024-210141-2047.log 467 B 2026-10-24 19:04:53
run-20261024-204826-2046.log 467 B 2026-10-24 18:51:30
run-20261024-203510-2045.log 467 B 2026-10-24 18:38:15
run-20261024-202157-2044.log 467 B 2026-10-24 18:24:59
run-20261024-200832-2043.log 467 B 2026-10-24 18:11:46
run-20261024-195510-2042.log 467 B 2026-10-24 17:58:21
run-20261024-194152-2041.log 467 B 2026-10-24 17:44:58
run-20261024-192834-2040.log 467 B 2026-10-24 17:31:40
run-20261024-191511-2039.log 467 B 2026-10-24 17:18:23
run-20261024-190142-2038.log 467 B 2026-10-24 17:05:00
run-20261024-184818-2037.log 467 B 2026-10-24 16:51:31
run-20261024-183501-2036.log 467 B 2026-10-24 16:38:07
run-20261024-182135-2035.log 467 B 2026-10-24 16:24:50
run-20261024-180840-2034.log 467 B 2026-10-24 16:11:23
run-20261024-175532-2033.log 467 B 2026-10-24 15:58:29
run-20261024-174217-2032.log 467 B 2026-10-24 15:45:20
run-20261024-172904-2031.log 467 B 2026-10-24 15:32:05
run-20261024-171554-2030.log 467 B 2026-10-24 15:18:53
run-20261024-170244-2029.log 467 B 2026-10-24 15:05:43
run-20261024-164929-2028.log 467 B 2026-10-24 14:52:33
run-20261024-163559-2027.log 467 B 2026-10-24 14:39:18
run-20261024-162229-2026.log 467 B 2026-10-24 14:25:48
run-20261024-160902-2025.log 467 B 2026-10-24 14:12:18
run-20261024-155529-2024.log 467 B 2026-10-24 13:58:51
run-20261024-154205-2023.log 467 B 2026-10-24 13:45:18
run-20261024-152850-2022.log 467 B 2026-10-24 13:31:52
run-20261024-151525-2021.log 467 B 2026-10-24 13:18:39
run-20261024-150157-2020.log 467 B 2026-10-24 13:05:14
run-20261024-144831-2019.log 467 B 2026-10-24 12:51:46
run-20261024-143518-2018.log 467 B 2026-10-24 12:38:20
run-20261024-142155-2017.log 467 B 2026-10-24 12:25:07
run-20261024-140847-2016.log 467 B 2026-10-24 12:11:44
run-20261024-135529-2015.log 467 B 2026-10-24 11:58:35
run-20261024-134205-2014.log 467 B 2026-10-24 11:45:17
run-20261024-132845-2013.log 467 B 2026-10-24 11:31:53
run-20261024-131526-2012.log 467 B 2026-10-24 11:18:34
run-20261024-130157-2011.log 467 B 2026-10-24 11:05:14
run-20261024-124848-2010.log 467 B 2026-10-24 10:51:46
run-20261024-123530-2009.log 467 B 2026-10-24 10:38:37
run-20261024-122223-2008.log 467 B 2026-10-24 10:25:19
Tail — run-20261024-231500-2057.log (last 200 lines)
-rw-r-----  1 root adm      6775 Oct 12 23:57 other_vhosts_access.log.12.gz
-rw-r-----  1 root adm     10125 Oct 11 23:28 other_vhosts_access.log.13.gz
-rw-r-----  1 root adm     12222 Oct 10 23:37 other_vhosts_access.log.14.gz
-rw-r-----  1 root adm      1548 Oct 22 22:16 other_vhosts_access.log.2.gz
-rw-r-----  1 root adm      1277 Oct 21 23:45 other_vhosts_access.log.3.gz
-rw-r-----  1 root adm      6875 Oct 20 23:39 other_vhosts_access.log.4.gz
-rw-r-----  1 root adm      4301 Oct 19 22:45 other_vhosts_access.log.5.gz
-rw-r-----  1 root adm      5510 Oct 18 22:12 other_vhosts_access.log.6.gz
-rw-r-----  1 root adm      4168 Oct 17 23:40 other_vhosts_access.log.7.gz
-rw-r-----  1 root adm      5589 Oct 16 23:50 other_vhosts_access.log.8.gz
-rw-r-----  1 root adm      5367 Oct 15 23:35 other_vhosts_access.log.9.gz
-rw-r-----  1 root adm      5767 Oct 24 16:07 photos-access.log
-rw-r-----  1 root adm     19418 Oct 23 19:58 photos-access.log.1
-rw-r-----  1 root adm      8014 Oct 14 23:37 photos-access.log.10.gz
-rw-r-----  1 root adm       886 Oct 13 17:46 photos-access.log.11.gz
-rw-r-----  1 root adm       581 Oct 12 23:11 photos-access.log.12.gz
-rw-r-----  1 root adm      1794 Oct 11 23:43 photos-access.log.13.gz
-rw-r-----  1 root adm     11913 Oct 10 23:37 photos-access.log.14.gz
-rw-r-----  1 root adm      1115 Oct 22 20:55 photos-access.log.2.gz
-rw-r-----  1 root adm       206 Oct 21 23:24 photos-access.log.3.gz
-rw-r-----  1 root adm      1842 Oct 20 20:13 photos-access.log.4.gz
-rw-r-----  1 root adm       439 Oct 19 23:30 photos-access.log.5.gz
-rw-r-----  1 root adm       431 Oct 18 19:35 photos-access.log.6.gz
-rw-r-----  1 root adm      7548 Oct 17 21:12 photos-access.log.7.gz
-rw-r-----  1 root adm     10714 Oct 16 22:53 photos-access.log.8.gz
-rw-r-----  1 root adm      5359 Oct 15 23:00 photos-access.log.9.gz
-rw-r-----  1 root adm       181 Oct 24 09:18 photos-error.log
-rw-r-----  1 root adm       402 Oct 14 08:41 photos-error.log.1
-rw-r-----  1 root adm       264 Oct 10 07:55 photos-error.log.2.gz
-rw-r--r--  1 root root      463 Sep 27 21:17 photos-error.log.3.gz
=== download hits in access logs ===
      1 10.2.3.1
$ grep -hc "GET /download/gladex" /var/log/apache2/*access* 2>/dev/null; echo "=== sample lines ==="; grep -h "GET /download/gladex" /var/log/apache2/*access* 2>/dev/null | tail -5; echo "=== curl UA lines by day ==="; grep -h "GET /download/gladex" /var/log/apache2/*access* 2>/dev/null | grep -i "curl" | awk -F: '{print $1" "$2}' | uniq -c | tail -20
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
=== sample lines ===
10.2.3.1 - - [24/Oct/2026:07:34:32 +0200] "GET /download/gladex HTTP/1.1" 200 2132712 "-" "Mozilla/5.0 (compatible; QlyzeBot/1.0; +https://app.qlyze.io/bot)"
=== curl UA lines by day ===
> build · mimo-v2.6-flash-free
$ cd /var/log/apache2 && { grep -h "GET /download/gladex" *.log *.log.1 2>/dev/null; for f in *.gz; do zgrep -h "GET /download/gladex" "$f" 2>/dev/null; done; } > /tmp/dl-hits.txt; wc -l /tmp/dl-hits.txt; echo "=== by peer ==="; awk '{print $1}' /tmp/dl-hits.txt | sort | uniq -c | sort -rn; echo "=== by UA (tail field) ==="; awk -F'"' '{print $6}' /tmp/dl-hits.txt | sort | uniq -c | sort -rn | head -12; echo "=== by day ==="; awk -F'[' '{print substr($2,1,11)}' /tmp/dl-hits.txt | sort | uniq -c | tail -20
40 /tmp/dl-hits.txt
=== by peer ===
     32 10.2.3.1
      3 gladex.de:80
      2 127.0.0.1
      2 10.2.3.8
      1 git.gladex.de:80
=== by UA (tail field) ===
      7 curl/8.5.0
      5 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36
      4 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot) Chrome/119.0.6045.214 Safari/537.36
      4 Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1
      3 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Reflectionbot/1.0; +https://reflection.ai/bot) Chrome/151.0.0.0 Safari/537.36
      3 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)
      3 Mozilla/5.0 (compatible; QlyzeBot/1.0; +https://app.qlyze.io/bot)
      3 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
      2 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36
      2 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15 (Applebot/0.1; +http://www.apple.com/go/applebot)
      1 curl/8.7.1
      1 PoliasBot/0.1 (+https://polias.eu/bot; hallo@polias.eu)
=== by day ===
      9 10/Oct/2026
      3 11/Oct/2026
     10 12/Oct/2026
      2 13/Oct/2026
      6 14/Oct/2026
      2 17/Oct/2026
      3 19/Oct/2026
      3 20/Oct/2026
      1 21/Oct/2026
      1 24/Oct/2026
> build · mimo-v2.6-flash-free
$ python3 - <<'EOF'
import json, collections, datetime
p="/opt/startup/prod/logs/downloads.log"
byhour=collections.Counter(); samples=[]
for line in open(p):
    d=json.loads(line)
    if d["ua"].startswith("curl"):
        t=datetime.datetime.fromtimestamp(d["ts"], datetime.UTC)
        byhour[t.strftime("%Y-%m-%d %H"])] = byhour.get(t.strftime("%Y-%m-%d %H"),0)+1
        samples.append((t.isoformat(), d["peer"], d["ua"]))
print("curl lines:", len(samples))
print("first:", samples[0], "last:", samples[-1])
# gaps
import statistics
ts=[datetime.datetime.fromtimestamp(json.loads(l)["ts"], datetime.UTC) for l in open(p) if json.loads(l)["ua"].startswith("curl")]
ts.sort()
gaps=[(ts[i+1]-ts[i]).total_seconds() for i in range(len(ts)-1)]
print("median gap s:", statistics.median(gaps), "min:", min(gaps), "max:", max(gaps))
print("distinct days:", len({t.date().isoformat() for t in ts}))
EOF
File "<stdin>", line 8
    byhour[t.strftime("%Y-%m-%d %H"])] = byhour.get(t.strftime("%Y-%m-%d %H"),0)+1
                                   ^
SyntaxError: closing parenthesis ']' does not match opening parenthesis '('
$ cd /data/repo && grep -rn "download/gladex" --include="*.sh" --include="*.php" --include="*.py" --include="*.md" tools/ tests/ app/ 2>/dev/null | head -20; echo "=== cron/systemd ==="; grep -rn "download" /etc/cron.d/ /etc/crontab 2>/dev/null | head; systemctl list-timers --no-pager 2>/dev/null | grep -i "down\|health\|red\|watch" | head
tools/REGISTRY.md:2558:- HTTP endpoints: /healthz (dev+prod), /download/gladex, /api/health, /api/uptime, /api/endpoints, /api/changelog, /api/stats
tools/REGISTRY.md:8638:`/download/gladex`, written by `app/src/php/download_counter.php` in `[0.4.313]`):
tests/test_getting_started.sh:278:for tok in 'curl -fsSL https://gladex.de/download/gladex' 'gladex serve --port 50051' 'gladex mcp --port 50052'; do
tests/test_getting_started.sh:281:assert_has "A10 the install line is classified EXCLUDED" $'F01\tEXCLUDED\tcurl -fsSL https://gladex.de/download/gladex' "$(cat "$BASE/cls")"
tests/test_docs_mobile.php:424: * Commands paragraph: `curl -O https://gladex.de/download/gladex`. The URL is
tests/test_docs_mobile.php:446:assert_true(strpos($src, 'curl -O https://gladex.de/download/gladex') !== false,
tests/test_docs_mobile.php:569:  out.hasUrl = document.body.textContent.indexOf('https://gladex.de/download/gladex') >= 0;
tests/test_report_demo.sh:199:  'curl -fsSL http://gladex.de/download/gladex -o /usr/local/bin/gladex && chmod +x /usr/local/bin/gladex' \
tests/test_report_demo.sh:286:  "$(grep -c '^\*\*Download\*\*: `curl -fsSL http://gladex.de/download/gladex' "$REPORT" || true)"
tests/test_start_page.php:149:foreach (['https://gladex.de/download/gladex',
tests/test_start_page.php:208:    assert_true(str_contains($d, 'https://gladex.de/download/gladex'),
tests/test_download_counter.php:5: * date — the app served /download/gladex and counted nothing, and Apache's
tests/test_download_counter.php:33: *               HEAD on /download/gladex writes no line, a GET on
tests/test_download_counter.php:34: *               /download/gladex writes exactly one, parsed end to end. Cost
tests/test_download_counter.php:328:    $c2 = http_code("http://127.0.0.1:$port/download/gladex", 'HEAD', $markHead);
tests/test_download_counter.php:331:    assert_true($c2 === 200, "$envName HEAD /download/gladex answers 200 (got $c2)");
tests/test_download_counter.php:335:    $c3 = http_code("http://127.0.0.1:$port/download/gladex", 'GET', $markGet);
tests/test_download_counter.php:336:    assert_true($c3 === 200, "$envName GET /download/gladex answers 200 (got $c3)");
app/src/php/download.php:208:        <a href="/download/gladex" class="download-btn" download>
app/src/php/info.php:158:            <a href="/download/gladex">Download CLI</a>
=== cron/systemd ===
Sat 2026-10-24 23:30:29 CEST 2min 16s Sat 2026-10-24 23:25:29 CEST  2min 43s ago sofia-watch.timer              sofia-watch.service
Sat 2026-10-24 23:32:30 CEST 4min 16s Sat 2026-10-24 23:17:30 CEST     10min ago agent-loop-watchdog.timer      agent-loop-watchdog.service
Sun 2026-10-25 07:51:34 CET        9h Sat 2026-10-24 08:51:33 CEST       14h ago update-notifier-download.timer update-notifier-download.service
> build · mimo-v2.6-flash-free

Select another run log from the list above. Only files matching run-YYYYMMDD-HHMMSS-N.log are readable.

App log tail — prod-8001.log (last 60 lines)
[Sat Oct 24 23:16:59 2026] 127.0.0.1:42718 Accepted
[Sat Oct 24 23:16:59 2026] 127.0.0.1:42718 Closing
[Sat Oct 24 23:16:59 2026] 127.0.0.1:42726 Accepted
[Sat Oct 24 23:16:59 2026] 127.0.0.1:42726 Closing
[Sat Oct 24 23:16:59 2026] 127.0.0.1:42738 Accepted
[Sat Oct 24 23:16:59 2026] 127.0.0.1:42738 Closing
[Sat Oct 24 23:18:01 2026] 127.0.0.1:37708 Accepted
[Sat Oct 24 23:18:01 2026] 127.0.0.1:37708 Closing
[Sat Oct 24 23:18:45 2026] 127.0.0.1:54306 Accepted
[Sat Oct 24 23:18:45 2026] 127.0.0.1:54306 Closing
[Sat Oct 24 23:20:42 2026] 127.0.0.1:60370 Accepted
[Sat Oct 24 23:20:42 2026] 127.0.0.1:60370 Closing
[Sat Oct 24 23:20:42 2026] 127.0.0.1:60378 Accepted
[Sat Oct 24 23:20:42 2026] 127.0.0.1:60378 Closing
[Sat Oct 24 23:20:58 2026] 127.0.0.1:32874 Accepted
[Sat Oct 24 23:20:58 2026] 127.0.0.1:32874 Closing
[Sat Oct 24 23:20:58 2026] 127.0.0.1:32884 Accepted
[Sat Oct 24 23:20:58 2026] 127.0.0.1:32884 Closing
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47434 Accepted
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47434 Closing
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47436 Accepted
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47436 Closing
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47438 Accepted
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47438 Closing
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47454 Accepted
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47454 Closing
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47466 Accepted
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47466 Closing
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47474 Accepted
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47474 Closing
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47488 Accepted
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47488 Closing
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47502 Accepted
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47502 Closing
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47512 Accepted
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47512 Closing
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47528 Accepted
[Sat Oct 24 23:21:28 2026] 127.0.0.1:47528 Closing
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43964 Accepted
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43964 Closing
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43966 Accepted
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43966 Closing
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43968 Accepted
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43968 Closing
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43972 Accepted
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43972 Closing
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43982 Accepted
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43982 Closing
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43990 Accepted
[Sat Oct 24 23:22:47 2026] 127.0.0.1:43990 Closing
[Sat Oct 24 23:22:47 2026] 127.0.0.1:44004 Accepted
[Sat Oct 24 23:22:47 2026] 127.0.0.1:44004 Closing
[Sat Oct 24 23:22:47 2026] 127.0.0.1:44010 Accepted
[Sat Oct 24 23:22:47 2026] 127.0.0.1:44010 Closing
[Sat Oct 24 23:22:47 2026] 127.0.0.1:44024 Accepted
[Sat Oct 24 23:22:48 2026] 127.0.0.1:44024 Closing
[Sat Oct 24 23:22:48 2026] 127.0.0.1:44038 Accepted
[Sat Oct 24 23:22:48 2026] 127.0.0.1:44038 Closing
[Sat Oct 24 23:28:31 2026] 127.0.0.1:58038 Accepted

Other app logs: downloads.log

Generated 2026-10-24 21:28:31 UTC · Gladex.de