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/`
|
||||
- Работа с GitHub/GitLab/Gitea: `docs/openclaude-with-repositories.md`
|
||||
- Примеры cron-автоматизации: `docs/cron-examples.md`
|
||||
- Автоустановка cron: `scripts/install-cron.sh`
|
||||
|
||||
@@ -22,6 +22,27 @@ mkdir -p "$HOME/openclaude-logs"
|
||||
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-задачи
|
||||
|
||||
```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