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:
+13
-8
@@ -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[без изменений]
|
||||
```
|
||||
|
||||
## Настройка перед первым запуском
|
||||
|
||||
Reference in New Issue
Block a user