Supersedes Sysplex_Checkpoint_20261010_0548.md. Paste/upload at the start of the next conversation.
Andrew = retired sysadmin, owner of drugs-and-users.org (SMF). Reply header Claude: [DD/MM/YYYY--HH:MM:SS:mmm TZ] from code execution every reply. Markdown only. Few questions, more statements; keep simple things simple. Delivery rules: bump @version/@date, version-history entry, print version at start, dotted versioned zip (never reused), xmllint on XML, list unrequested changes BEFORE making them, release card; SMF package zips use his legacy zipper (Claude has none). Never rename his scripts. His grep is aliased --color=always: use grep --color=never when piping.
| Box | Short host / address | Role | Notes |
|---|---|---|---|
| Live | forum / forum.drugs-and-users.org, 128.199.200.202 |
production, 64-bit CentOS 6.10 | tz +08; NO mirror scripts run here (its copies are inert); use $RUN for glibc Python |
| Clone | clone / 192.168.233.140 |
64-bit CentOS 6.10 rebuild, orchestrator | Clone's /bin is the master of all three /bin dirs; glibc 2.17 at /opt/glibc-2.17 |
| Dev | dev / 192.168.233.129 |
32-bit CentOS 6, kept as long as possible | no torch/transformers/llama.cpp possible; tz +11 |
Each box: 3 webroots, only /var/www/html (db smf209) used; smf20 (2.0.19) and smf21 (2.1.7) are unused placeholders.
dev_sync_v1.0.2.zip): php-opcache/apcu/memcache; my.cnf tuning; verified after service restarts. innodb_log_file_size left manual.bin_tools_v1.2.0.zip (bin_manifest 1.1.0, bin_compare 1.1.0)./bin master; Collabware/bin hand-managed on Clone and removed from the Collaborative mod.mirror1_Clone / mirror1_Dev; MIRROR_Clone / MIRROR_Dev (set -e).--delete policy (final): KEPT on mirrorISE_* and the /root, /bin, /etc, git mirrors; removed everywhere else.json_push_visual_Clone_to_Live (header 1.0.3). Andrew added a host guard himself: [ "$(hostname -s)" != "clone" ] aborts before the gzip_ISE_Data ssh. hostname -s on Clone confirmed = clone.json_push_audio_Clone_to_Live now v1.0.0 with the same guard and a proper header. Its five rsyncs still have NO [ -f ] guards (a missing file, e.g. audio_store.json.pre2419, gives rsync 23 and set -e stops the run).*.json stores have identical md5 on Live/Clone/Dev EXCEPT audio_store.json on Clone (377c05a1⦠vs 11bf1b4cā¦). cmp -l shows 4 differing bytes: only the store's updated field (13:38:59 vs 14:16:56 on Oct 7). All records identical; nothing to sync. Cause: AudioProcessor re-saved on a no-op run. captions_store.json is correct (v1.0.1 fix holds).json_diff_md5sums_All_Dev was a stale copy of the Clone script (ran locally as "Clone:", ssh'd to Dev as "Dev:"), so its "all identical" run was Dev vs Dev. Disregard that run. In the 13:19 /bin compare the file is identical on all three boxes (confirm it is the new one: head -11 /bin/json_diff_md5sums_All_Dev should show a version line)./bin compare run (13:19 AEDT, compare_bin.md): Live 189, Clone 191, Dev 198 files; 124 identical, 55 differ, 23 only on Live, 16 only on Clone, 109 only on Dev. 29 differ as Live = Clone | Dev (Dev drift; healthy direction).bin_deep_check.lst):
dbbacksmf / dbbacksm2: Live has the fixed, versioned scripts (credentials moved to /root/.my.cnf); Clone's master copies are OLD, with the root DB password on the command line / in a commented mysqldump line. Dev's dbbacksmf is 2021-era. SECURITY: treat the password as exposed anywhere /bin is mirrored off-box (check git mirrors / gh-backup-repos); rotate if so.dbbacksm2 on Live: header @version 1.0.3 but it prints dbbacksm2 v1.0.2. Needs a 1.0.4 with a history line.SQLhousekeeping: Live keeps 2 days of DB backups, Clone 3 (Live is the deliberate Sep 18 change).attachme: Live has set -x (debug leftover) plus scratch comments (post IDs/titles). chkindeximages: commented-line toggle (--watch 60 on Live), not a real difference. pdfjslinks: line-ending (CR) difference only. commands.txt: Live is the fuller notes file. clrcache, sysmd, backup: cosmetic.dbbacksmf, dbbacksm2, SQLhousekeeping into Clone's /bin (scp -p -q root@forum.drugs-and-users.org:/bin/$f /bin/$f); then grep --color=never -ln -E -e '-u ?root -p' /bin/* to find other scripts with the password on the command line; decide on rotation; fix the dbbacksm2 banner (1.0.4).json_push_media_Clone_to_Live is still in Clone's /bin (pre-rename v1.0.2, no guard) beside json_push_visual_Clone_to_Live. Remove after grep -rn 'json_push_media' /bin /root /etc shows no callers. Live also holds inert Oct 4 copies of json_push_audio, json_push_media, mirrorISE_Clone, mirrorISE_Dev (pre-fix).json_push_visual_Clone_to_Live still says 1.0.3 but now has the guard (needs 1.0.4 + history line); json_push_audio_Clone_to_Live has no @edits entry for the guard.json_diff_md5sums_All_Clone / _Dev), optional changes not yet chosen: ssh -q (drops the login banner, printed 3x per box); | tee /tmp/clo instead of running md5sum twice per box; ls -l --time-style=+%s (the ls -al diff is all noise because Live is +08 and the others +11); a hostname guard in each; the Dev copy never diffs the *dir listings; the *.json glob misses audio_manifest.tsv, audioprocessor.log, audio_store.json.pre2419, frame_cache/, caption_tmp/. Overlaps the existing json_md5_diff_Live / compareISE_Data.lurkers, find_guest_members.sh, json_md5sums_all, gzip_Live*, prep.sh, tarball.sh, ā¦): pull to Clone or declare Live-only.rsync_cpp_to_live / rsync_perl_to_live push to Live and may still carry --delete; move to Clone's /bin before Dev is retired. Old mirror1.sh, mirror1.sh-old, MIRRORo.sh still on Dev (dead). json_md5sum_media_Clone_to_Live still says "media".al, cl, clog, dbbackall, dbbacksmf21, filecmd2, rsync-{bin,html,root}-latest, repair-*; cron2_dis_ena.sh Dev is 1 minute newer than Clone.AudioProcessor rewrites the store on a no-op run (updates only updated), which makes md5 comparisons show false drift. Processor change, Andrew's decision.AudioProcessor.py, AudioProcessor_manual.md) in mirrorISE_Clone's first rsync with --exclude 'AudioProcessor*' (Claude recommends it: protects versioned copies and .pyc from --delete).processor_checkpoint.json absent on Clone: expected unless the media processor source says it should write one.<description> in Collaborative package-info.xml stale; re-zip the full package with his legacy zipper; test 6.0 hooks on Clone's smf21.mirror1_Clone with -n once to check the excludes (never dry-run tested).set -e in MIRROR_*: any non-zero step (rsync 23, dblivesmf-copies.sh) stops the run; consider || echo "step rc=$?" on steps that may legitimately return non-zero.mirror1_Dev echo says "ONLY Clones /bin"; mirrorISE_Clone line 3 cut-off comment; stale --delete comment in json_push_audio_Clone_to_Live; junk lines at the end of mirrorISE_Dev_to_Live.innodb_log_file_size; optional ImageMagick/evasive/reqtimeout; idle cups/samba/nfs/rpcbind.PDF transcript (his job) and this checkpoint (Claude's job), then zip Collabware/bin and attach it to the post, "maybe later" for the Live-newer file pulls, then "mirror and lay down again".
<hook hook=⦠function=⦠/>; reverse="true" on uninstall; XML comments can't contain --. PclZip rejects streaming data-descriptor zips ā legacy zipper. require-dir ships whole dirs; reinstall only adds files.--delete (unless --delete-excluded); anchor with leading /; 3.0.6 no -H with --dry-run. CentOS 6 sh is POSIX bash (exec > >(tee ā¦) fails); init start doesn't restart a running service.bin_compare (all from Clone, as root; read-only): mkdir -p /root/m2 && cd /root/m2 && /root/bin_manifest; for Live and Dev: ssh -q <host> 'mkdir -p /root/m2 && cd /root/m2 && /root/bin_manifest', then scp -q the bin_manifest_forum_bin_*.txt and bin_manifest_dev_bin_*.txt back; then python3.8 /root/bin_compare bin_manifest_forum_bin_*.txt bin_manifest_clone_bin_*.txt bin_manifest_dev_bin_*.txt --out compare_bin.md. Report times are UTC. mtime is only a hint for "newer".cmp -l a b | wc -l counts differing bytes; head -c N file | tail -c M shows the window.ssh -q root@forum.drugs-and-users.org cat /bin/$f | diff - /bin/$f (< Live, > Clone).