Add cron installer script for maintenance tasks.
Made-with: Cursor
This commit is contained in:
@@ -359,3 +359,4 @@ chmod +x script.sh
|
|||||||
- Готовый starter: `docs/rag-mcp-starter/`
|
- Готовый starter: `docs/rag-mcp-starter/`
|
||||||
- Работа с GitHub/GitLab/Gitea: `docs/openclaude-with-repositories.md`
|
- Работа с GitHub/GitLab/Gitea: `docs/openclaude-with-repositories.md`
|
||||||
- Примеры cron-автоматизации: `docs/cron-examples.md`
|
- Примеры cron-автоматизации: `docs/cron-examples.md`
|
||||||
|
- Автоустановка cron: `scripts/install-cron.sh`
|
||||||
|
|||||||
@@ -22,6 +22,27 @@ mkdir -p "$HOME/openclaude-logs"
|
|||||||
crontab -e
|
crontab -e
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Автоустановка cron одной командой
|
||||||
|
|
||||||
|
Из корня репозитория:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod +x scripts/install-cron.sh
|
||||||
|
./scripts/install-cron.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
С кастомной моделью:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/install-cron.sh --model qwen2.5:3b
|
||||||
|
```
|
||||||
|
|
||||||
|
С кастомным путём репозитория/логов:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/install-cron.sh --repo-path /home/USER/openclaude-LLM-local --log-dir /home/USER/openclaude-logs
|
||||||
|
```
|
||||||
|
|
||||||
## 3 cron-задачи
|
## 3 cron-задачи
|
||||||
|
|
||||||
```cron
|
```cron
|
||||||
|
|||||||
Executable
+85
@@ -0,0 +1,85 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Install 3 maintenance cron jobs for OpenClaude local stack.
|
||||||
|
# Idempotent: replaces managed block, avoids duplicates.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# ./scripts/install-cron.sh
|
||||||
|
# ./scripts/install-cron.sh --user-home /home/myuser --model qwen2.5:3b
|
||||||
|
|
||||||
|
USER_HOME="${HOME}"
|
||||||
|
MODEL="qwen2.5-coder:7b"
|
||||||
|
REPO_PATH="${USER_HOME}/openclaude-LLM-local"
|
||||||
|
LOG_DIR="${USER_HOME}/openclaude-logs"
|
||||||
|
CRON_TMP="$(mktemp)"
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case "$1" in
|
||||||
|
--user-home)
|
||||||
|
USER_HOME="$2"
|
||||||
|
REPO_PATH="${USER_HOME}/openclaude-LLM-local"
|
||||||
|
LOG_DIR="${USER_HOME}/openclaude-logs"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--repo-path)
|
||||||
|
REPO_PATH="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--log-dir)
|
||||||
|
LOG_DIR="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--model)
|
||||||
|
MODEL="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown argument: $1"
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
START_MARK="# BEGIN OPENCLAUDE_MANAGED_CRON"
|
||||||
|
END_MARK="# END OPENCLAUDE_MANAGED_CRON"
|
||||||
|
|
||||||
|
mkdir -p "$LOG_DIR"
|
||||||
|
|
||||||
|
current_cron="$(mktemp)"
|
||||||
|
if crontab -l > "$current_cron" 2>/dev/null; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
: > "$current_cron"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove old managed block if present
|
||||||
|
awk -v s="$START_MARK" -v e="$END_MARK" '
|
||||||
|
$0 == s {inblock=1; next}
|
||||||
|
$0 == e {inblock=0; next}
|
||||||
|
!inblock {print}
|
||||||
|
' "$current_cron" > "$CRON_TMP"
|
||||||
|
|
||||||
|
cat >> "$CRON_TMP" <<EOF
|
||||||
|
|
||||||
|
$START_MARK
|
||||||
|
# 1) Daily status check
|
||||||
|
10 8 * * * cd $REPO_PATH/docs/rag-mcp-starter && ./status.sh --model $MODEL >> $LOG_DIR/status.log 2>&1
|
||||||
|
# 2) Weekly model refresh
|
||||||
|
30 4 * * 0 /usr/bin/ollama pull $MODEL >> $LOG_DIR/model-update.log 2>&1
|
||||||
|
# 3) Monthly safe stack upgrade
|
||||||
|
0 5 1 * * cd $REPO_PATH/docs/rag-mcp-starter && ./upgrade.sh --model $MODEL >> $LOG_DIR/stack-upgrade.log 2>&1
|
||||||
|
$END_MARK
|
||||||
|
EOF
|
||||||
|
|
||||||
|
crontab "$CRON_TMP"
|
||||||
|
|
||||||
|
rm -f "$current_cron" "$CRON_TMP"
|
||||||
|
|
||||||
|
echo "Cron jobs installed."
|
||||||
|
echo "Repo path: $REPO_PATH"
|
||||||
|
echo "Log dir: $LOG_DIR"
|
||||||
|
echo "Model: $MODEL"
|
||||||
|
echo
|
||||||
|
echo "Current crontab:"
|
||||||
|
crontab -l
|
||||||
Reference in New Issue
Block a user