fix: always sync sac-client.sh in update_ssh_monitor

Copy sac-client.sh on every git pull by checksum, not only when
ssh-monitor binary changes. Restart service when either file updates.
This commit is contained in:
2026-05-27 12:20:14 +10:00
parent 18562af07a
commit 4cb158f30a
3 changed files with 100 additions and 35 deletions
+13 -8
View File
@@ -13,20 +13,25 @@
- `$UPDATE_DIR/ssh-monitor/src/branch/main/ssh-monitor` (структура GitLab);
- `$UPDATE_DIR/ssh-monitor/ssh-monitor` (плоский репозиторий, как в этом проекте).
5. Сравнивает **SHA256** удалённого файла с **`LOCAL_SCRIPT_PATH`** (по умолчанию `/usr/local/bin/ssh-monitor`).
6. При отличии:
- резервная копия `ssh-monitor.backup.YYYYMMDD_HHMMSS`;
- `cp` + `chmod +x`;
6. **Всегда** (независимо от шага 5) синхронизирует **`sac-client.sh`** в каталог рядом с монитором (по умолчанию **`/usr/local/bin/sac-client.sh`**) — нужен для **`UseSAC`** и **`--check-sac`**.
7. При отличии checksum **`ssh-monitor`** и/или **`sac-client.sh`**:
- резервная копия `ssh-monitor.backup.YYYYMMDD_HHMMSS` (только для основного скрипта);
- `cp` + `chmod +x` для `ssh-monitor`, `chmod 644` для `sac-client.sh`;
- **`systemctl restart ssh-monitor.service`** (если есть systemctl).
7. Пишет лог в **`LOG_FILE`** (по умолчанию `/var/log/update_script.log`).
8. Пишет лог в **`LOG_FILE`** (по умолчанию `/var/log/update_script.log`).
```mermaid
flowchart LR
A[cron/timer] --> B[update_ssh_monitor.sh]
B --> C[git pull/clone]
C --> D{SHA256 различается?}
D -->|да| E[backup + cp]
E --> F[restart ssh-monitor.service]
D -->|нет| G[без изменений]
C --> D[sync sac-client.sh]
C --> E{SHA256 ssh-monitor?}
D --> F{что-то обновилось?}
E -->|да| G[backup + cp ssh-monitor]
E -->|нет| F
G --> F
F -->|да| H[restart ssh-monitor.service]
F -->|нет| I[без изменений]
```
## Настройка перед первым запуском