Files
local_machine/docs/apps/joplin/scripts/joplin-webdav-status.sh
ahauimix 0238aa7c02 Add Object B and self-growth canons with Cursor ledger rules; refresh connectivity and VPN runbooks.
Track day metrics/anamnesis HARD rules under .cursor/rules and personal docs so each screening updates days/{KIN}, dynamics, and big-data ledger.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 10:22:56 +08:00

110 lines
4.3 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
CONFIG="${JOPLIN_WEBDAV_CONFIG:-$HOME/.config/joplin-webdav/env}"
PID_FILE="$HOME/.config/joplin-webdav/rclone.pid"
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
echo "=== WebDAV Joplin ==="
if [ -f "$CONFIG" ]; then
# shellcheck disable=SC1090
. "$CONFIG"
echo "Пользователь: ${JOPLIN_WEBDAV_USER:-?}"
echo "Порт: ${JOPLIN_WEBDAV_PORT:-8080}"
echo "Папка: ${JOPLIN_WEBDAV_ROOT:-$HOME/JoplinSync}"
else
echo "Конфиг не найден: $CONFIG"
fi
echo ""
echo "=== Процесс ==="
if pgrep -f "rclone serve webdav" >/dev/null 2>&1; then
pgrep -lf "rclone serve webdav" 2>/dev/null || true
else
echo "Не запущен → ./docs/apps/joplin/scripts/joplin-webdav-serve.sh"
fi
port="${JOPLIN_WEBDAV_PORT:-8080}"
echo ""
echo "=== URL для телефона (Android-хотспот) ==="
if [ -x "$SCRIPT_DIR/joplin-hotspot-alias.sh" ]; then
"$SCRIPT_DIR/joplin-hotspot-alias.sh" status
else
echo "(нет joplin-hotspot-alias.sh)"
fi
echo ""
echo "=== mDNS (.local) — с телефона НЕ работает ==="
if [ -x "$SCRIPT_DIR/joplin-mdns-setup.sh" ]; then
host="$(scutil --get LocalHostName 2>/dev/null | tr '[:upper:]' '[:lower:]' || echo '?')"
echo "http://${host}.local:${port} — только Mac/Windows; Android-хотспот не резолвит"
fi
echo ""
echo "=== IP Mac (DHCP, справочно) ==="
ip=$(ipconfig getifaddr en0 2>/dev/null || true)
[ -n "$ip" ] && echo "primary en0: $ip" || echo "нет IP"
echo ""
echo "=== Порт :8080 ==="
lsof -nP -iTCP:"$port" -sTCP:LISTEN 2>/dev/null || echo "не слушает"
echo ""
echo "=== URL в Joplin (Mac) ==="
settings="$HOME/.config/joplin-desktop/settings.json"
if [ -f "$settings" ]; then
grep -o '"sync\.6\.path": *"[^"]*"' "$settings" 2>/dev/null | sed 's/.*"\(http[^"]*\)".*/\1/' \
| while read -r u; do echo "settings.json: $u"; done
fi
log="$HOME/Library/Logs/joplin-webdav/rclone.log"
echo ""
echo "=== Сеть: Mac и телефон в одной LAN? ==="
gw=$(route -n get default 2>/dev/null | awk '/gateway:/{print $2; exit}')
ip=$(ipconfig getifaddr en0 2>/dev/null || true)
case "$gw" in
192.168.1.*|192.168.0.*)
peers=$(arp -an 2>/dev/null | grep "$gw" | awk '{print $2}' | tr -d '()' | grep -vE "^${gw%.*}\.(1|255)$|^$ip$" | head -3)
if [ -z "$peers" ]; then
echo "⚠ Mac на домашнем WiFi ($ip), других устройств в LAN не видно"
echo " Телефон, скорее всего, НЕ в этой WiFi → синк невозможен"
echo " Вариант A: Mac подключить к хотспоту телефона"
echo " Вариант B: телефон подключить к той же WiFi, что Mac"
else
echo "Mac на WiFi роутера ($ip). Телефон должен быть в той же WiFi."
fi
;;
10.*|172.20.10.*|192.168.43.*|192.168.44.*)
echo "Mac на хотспоте ($ip). URL на телефоне — из блока выше (*.100)."
if [ -n "$gw" ] && [ -f "$log" ] && ! grep -q "from ${gw}:" "$log" 2>/dev/null; then
echo "В логе rclone ещё не было запросов с телефона ($gw)"
echo " Проверьте URL в браузере НА ТЕЛЕФОНЕ (не только в Joplin)"
fi
;;
*)
[ -n "$gw" ] && echo "gateway: $gw, Mac: ${ip:-?}"
;;
esac
echo ""
echo "=== rclone (запросы с телефона?) ==="
gw=$(route -n get default 2>/dev/null | awk '/gateway:/{print $2; exit}')
if [ -f "$log" ]; then
phone_lines=$(grep -E 'from 10\.|from 192\.168\.' "$log" 2>/dev/null | grep -v '127.0.0.1' | tail -5)
if [ -n "$gw" ] && grep -q "from ${gw}:" "$log" 2>/dev/null; then
echo "OK: в логе есть запросы с телефона/шлюза ($gw)"
grep "from ${gw}:" "$log" 2>/dev/null | tail -2
elif [ -n "$phone_lines" ]; then
echo "$phone_lines"
echo "⚠ нет запросов с шлюза ${gw:-?} — возможно только тесты с Mac"
else
echo "нет запросов с LAN — телефон не достучался до rclone"
fi
echo ""
echo "Смотреть live: tail -f $log | grep -v 127.0.0.1"
fi
echo ""
echo "=== Учётка ==="
[ -f "$CONFIG" ] && echo "Пароль: $CONFIG → JOPLIN_WEBDAV_PASS"