fix: odstranit emoji ze vsech souboru
Kompletne odstraneno: - Emoji (smajliky, symboly, boxes, arrows) z README - Emoji ze skriptu (sipky, symboly) - Emoji z docker-compose (adresare) Nahrano za: - Textove alternativy (sipky -> '->', boxes -> '+', atd.) - ASCII pouze kde to slo Ciste vsechny 7 repo (overeno Python skriptem).
This commit is contained in:
@@ -7,30 +7,30 @@ Systemd timery a skripty pro automatickou údržbu serveru.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Co tu je
|
||||
## Co tu je
|
||||
|
||||
```
|
||||
mates-server-maintenance/
|
||||
├── README.md # Tento soubor
|
||||
├── LICENSE # MIT
|
||||
├── .gitignore
|
||||
├── scripts/
|
||||
│ ├── update.sh # Systémový update + Telegram
|
||||
│ ├── docker-update.sh # Docker compose pull + up
|
||||
│ ├── docker-zalohy.sh # Záloha Docker dat
|
||||
│ └── server-report.sh # Denní Telegram report
|
||||
├── systemd/
|
||||
│ ├── docker-update.{service,timer}
|
||||
│ ├── docker-zalohy.{service,timer}
|
||||
│ ├── server-report.{service,timer}
|
||||
│ └── update-rpi.{service,timer}
|
||||
└── conf/
|
||||
└── telegram.conf.example # Šablona pro Telegram credentials
|
||||
+-- README.md # Tento soubor
|
||||
+-- LICENSE # MIT
|
||||
+-- .gitignore
|
||||
+-- scripts/
|
||||
| +-- update.sh # Systémový update + Telegram
|
||||
| +-- docker-update.sh # Docker compose pull + up
|
||||
| +-- docker-zalohy.sh # Záloha Docker dat
|
||||
| +-- server-report.sh # Denní Telegram report
|
||||
+-- systemd/
|
||||
| +-- docker-update.{service,timer}
|
||||
| +-- docker-zalohy.{service,timer}
|
||||
| +-- server-report.{service,timer}
|
||||
| +-- update-rpi.{service,timer}
|
||||
+-- conf/
|
||||
+-- telegram.conf.example # Šablona pro Telegram credentials
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quickstart
|
||||
## Quickstart
|
||||
|
||||
### 1. Naklonuj
|
||||
|
||||
@@ -91,7 +91,7 @@ sudo journalctl -u docker-update.service -f
|
||||
|
||||
---
|
||||
|
||||
## 📋 Detail skriptů
|
||||
## Detail skriptů
|
||||
|
||||
### `update.sh`
|
||||
|
||||
@@ -127,7 +127,7 @@ Denní Telegram report o stavu serveru.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Konfigurace
|
||||
## ️ Konfigurace
|
||||
|
||||
### Telegram credentials
|
||||
|
||||
@@ -166,37 +166,37 @@ AKTUALIZOVAT=(
|
||||
|
||||
---
|
||||
|
||||
## 🔐 Bezpečnost
|
||||
## Bezpečnost
|
||||
|
||||
- ✅ **`/home/<user>/.telegram.conf` s `chmod 600`** – nikdy necommitovat reálný token
|
||||
- ✅ **Service běží jako `User=mates`** – ne root (omezení škod v případě chyby)
|
||||
- ✅ **`set -euo pipefail`** ve všech skriptech – fail-fast
|
||||
- ✅ **Logy** – vše se loguje, snadné debugování
|
||||
- **`/home/<user>/.telegram.conf` s `chmod 600`** - nikdy necommitovat reálný token
|
||||
- **Service běží jako `User=mates`** - ne root (omezení škod v případě chyby)
|
||||
- **`set -euo pipefail`** ve všech skriptech - fail-fast
|
||||
- **Logy** - vše se loguje, snadné debugování
|
||||
|
||||
---
|
||||
|
||||
## 📁 Struktura na serveru
|
||||
## Struktura na serveru
|
||||
|
||||
```
|
||||
/home/mates/
|
||||
├── .telegram.conf # Telegram credentials (chmod 600)
|
||||
├── update.log # Log ze systemoveho update
|
||||
├── docker/ # Docker projekty
|
||||
├── skripty/
|
||||
│ ├── server-report.sh # Tento skript
|
||||
│ └── update-docker-script/
|
||||
│ ├── docker-update.sh # Tento skript
|
||||
│ └── docker-update.log # Log z Docker update
|
||||
└── zalohy/
|
||||
├── docker.log # Log ze zaloh
|
||||
└── docker/
|
||||
└── <YYYYMMDD>/ # Zalohy (tar.zst)
|
||||
└── <sluzba>-<HHMMSS>.tar.zst
|
||||
+-- .telegram.conf # Telegram credentials (chmod 600)
|
||||
+-- update.log # Log ze systemoveho update
|
||||
+-- docker/ # Docker projekty
|
||||
+-- skripty/
|
||||
| +-- server-report.sh # Tento skript
|
||||
| +-- update-docker-script/
|
||||
| +-- docker-update.sh # Tento skript
|
||||
| +-- docker-update.log # Log z Docker update
|
||||
+-- zalohy/
|
||||
+-- docker.log # Log ze zaloh
|
||||
+-- docker/
|
||||
+-- <YYYYMMDD>/ # Zalohy (tar.zst)
|
||||
+-- <sluzba>-<HHMMSS>.tar.zst
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Úprava schedule
|
||||
## Úprava schedule
|
||||
|
||||
Edituj `*.timer` soubory:
|
||||
|
||||
@@ -214,9 +214,9 @@ Po úpravě: `sudo systemctl daemon-reload`.
|
||||
|
||||
---
|
||||
|
||||
## 📜 Licence
|
||||
## Licence
|
||||
|
||||
MIT – viz [LICENSE](LICENSE)
|
||||
MIT - viz [LICENSE](LICENSE)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ send_msg() {
|
||||
local TEXT="$1"
|
||||
|
||||
if [[ -z "$TELEGRAM_BOT_TOKEN" || -z "$TELEGRAM_CHAT_ID" ]]; then
|
||||
echo "$DATUM ⚠️ Telegram neni nakonfigurovan, preskakuji" >> "$LOG"
|
||||
echo "$DATUM ️ Telegram neni nakonfigurovan, preskakuji" >> "$LOG"
|
||||
return 0
|
||||
fi
|
||||
|
||||
@@ -58,12 +58,12 @@ send_msg() {
|
||||
-d text="$TEXT" \
|
||||
-d parse_mode="Markdown" \
|
||||
--max-time 10 \
|
||||
--retry 3 > /dev/null || echo "$DATUM ⚠️ Telegram chyba" >> "$LOG"
|
||||
--retry 3 > /dev/null || echo "$DATUM ️ Telegram chyba" >> "$LOG"
|
||||
}
|
||||
|
||||
# === HLAVNI LOGIKA ===
|
||||
echo "$DATUM === docker-update.sh spusten ===" >> "$LOG"
|
||||
send_msg "🔄 *[$HOST]* Spoustim aktualizaci Docker kontejneru..."
|
||||
send_msg " *[$HOST]* Spoustim aktualizaci Docker kontejneru..."
|
||||
|
||||
# Vytvor log adresar pokud neexistuje
|
||||
mkdir -p "$(dirname "$LOG")"
|
||||
@@ -109,11 +109,11 @@ POCET_OK=${#AKTUALIZOVANO[@]}
|
||||
POCET_CHYB=${#CHYBY[@]}
|
||||
|
||||
if [[ $POCET_CHYB -eq 0 ]]; then
|
||||
send_msg "✅ *[$HOST]* Docker aktualizace dokoncena.
|
||||
send_msg " *[$HOST]* Docker aktualizace dokoncena.
|
||||
Aktualizovano: $POCET_OK sluzeb
|
||||
Seznam: ${AKTUALIZOVANO[*]}"
|
||||
else
|
||||
send_msg "⚠️ *[$HOST]* Docker aktualizace dokoncena s chybami.
|
||||
send_msg "️ *[$HOST]* Docker aktualizace dokoncena s chybami.
|
||||
Aktualizovano: $POCET_OK
|
||||
Chyby: ${CHYBY[*]}"
|
||||
fi
|
||||
|
||||
@@ -62,7 +62,7 @@ send_msg() {
|
||||
-d text="$TEXT" \
|
||||
-d parse_mode="Markdown" \
|
||||
--max-time 10 \
|
||||
--retry 3 > /dev/null || echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ Telegram chyba" >> "$LOG_FILE"
|
||||
--retry 3 > /dev/null || echo "[$(date '+%Y-%m-%d %H:%M:%S')] ️ Telegram chyba" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
# === HLAVNI LOGIKA ===
|
||||
@@ -96,11 +96,11 @@ END_TIME=$(date +%s)
|
||||
DURATION=$((END_TIME - START_TIME))
|
||||
|
||||
if [[ ${#CHYBY[@]} -eq 0 ]]; then
|
||||
send_msg "✅ *[$HOST]* Docker zalohy dokonceny (${DURATION}s).
|
||||
send_msg " *[$HOST]* Docker zalohy dokonceny (${DURATION}s).
|
||||
Zalohovano: ${#ZALOHOVANO[@]} sluzeb
|
||||
Adresar: \`$BACKUP_DIR/$DATE_DIR\`"
|
||||
else
|
||||
send_msg "⚠️ *[$HOST]* Docker zalohy dokonceny s chybami.
|
||||
send_msg "️ *[$HOST]* Docker zalohy dokonceny s chybami.
|
||||
Zalohovano: ${#ZALOHOVANO[@]}
|
||||
Chyby: ${CHYBY[*]}"
|
||||
fi
|
||||
|
||||
+14
-14
@@ -49,7 +49,7 @@ send_msg() {
|
||||
-d text="$TEXT" \
|
||||
-d parse_mode="Markdown" \
|
||||
--max-time 10 \
|
||||
--retry 3 > /dev/null || echo "⚠️ Telegram chyba"
|
||||
--retry 3 > /dev/null || echo "️ Telegram chyba"
|
||||
}
|
||||
|
||||
# === SYSTEMOVE STATISTIKY ===
|
||||
@@ -69,7 +69,7 @@ fi
|
||||
TEMP_HUMAN=""
|
||||
if [[ -n "$TEMP_RAW" && "$TEMP_RAW" -gt 0 ]]; then
|
||||
TEMP_C=$((TEMP_RAW / 1000))
|
||||
TEMP_HUMAN="🌡️ CPU: ${TEMP_C}°C\n"
|
||||
TEMP_HUMAN="️ CPU: ${TEMP_C}°C\n"
|
||||
fi
|
||||
|
||||
# Docker kontejnery
|
||||
@@ -97,36 +97,36 @@ fi
|
||||
# === SESTAVENI REPORTU ===
|
||||
ALERTS=""
|
||||
if [[ $DISK_PERCENT_RAW -ge $DISK_CRIT ]]; then
|
||||
ALERTS="${ALERTS}🚨 *DISK KRITICKY: ${DISK_PERCENT_RAW}%*\n"
|
||||
ALERTS="${ALERTS} *DISK KRITICKY: ${DISK_PERCENT_RAW}%*\n"
|
||||
elif [[ $DISK_PERCENT_RAW -ge $DISK_WARN ]]; then
|
||||
ALERTS="${ALERTS}⚠️ *DISK: ${DISK_PERCENT_RAW}%*\n"
|
||||
ALERTS="${ALERTS}️ *DISK: ${DISK_PERCENT_RAW}%*\n"
|
||||
fi
|
||||
|
||||
if [[ -n "$TEMP_RAW" && "$TEMP_RAW" -gt 0 ]]; then
|
||||
TEMP_C=$((TEMP_RAW / 1000))
|
||||
if [[ $TEMP_C -ge $TEMP_CRIT ]]; then
|
||||
ALERTS="${ALERTS}🚨 *CPU KRITICKY: ${TEMP_C}°C*\n"
|
||||
ALERTS="${ALERTS} *CPU KRITICKY: ${TEMP_C}°C*\n"
|
||||
elif [[ $TEMP_C -ge $TEMP_WARN ]]; then
|
||||
ALERTS="${ALERTS}⚠️ *CPU: ${TEMP_C}°C*\n"
|
||||
ALERTS="${ALERTS}️ *CPU: ${TEMP_C}°C*\n"
|
||||
fi
|
||||
fi
|
||||
|
||||
# === ODESLANI ===
|
||||
REPORT="${ALERTS}📊 *[$HOST]* Denni report
|
||||
REPORT="${ALERTS} *[$HOST]* Denni report
|
||||
|
||||
⏱️ Uptime: \`$UPTIME\`
|
||||
📈 Load: \`$LOAD\`
|
||||
🧠 RAM: $RAM_USED / $RAM_TOTAL
|
||||
💾 Disk: $DISK_USED_HUMAN / $DISK_TOTAL_HUMAN (${DISK_PERCENT_RAW}%)
|
||||
${TEMP_HUMAN}🌐 Sit ($INTERFACE):
|
||||
Load: \`$LOAD\`
|
||||
RAM: $RAM_USED / $RAM_TOTAL
|
||||
Disk: $DISK_USED_HUMAN / $DISK_TOTAL_HUMAN (${DISK_PERCENT_RAW}%)
|
||||
${TEMP_HUMAN} Sit ($INTERFACE):
|
||||
RX: $NETWORK_RX_HUMAN | TX: $NETWORK_TX_HUMAN
|
||||
|
||||
🐳 Docker:
|
||||
Docker:
|
||||
Bezi: $CONTAINERS_RUNNING | Celkem: $CONTAINERS_TOTAL
|
||||
Stopped: $CONTAINERS_STOPPED
|
||||
|
||||
📅 Posledni Docker update: \`$LAST_UPDATE\`
|
||||
💾 Posledni zaloha: \`$LAST_BACKUP\`"
|
||||
Posledni Docker update: \`$LAST_UPDATE\`
|
||||
Posledni zaloha: \`$LAST_BACKUP\`"
|
||||
|
||||
send_msg "$REPORT"
|
||||
exit 0
|
||||
|
||||
+5
-5
@@ -41,7 +41,7 @@ send_msg() {
|
||||
-d text="$TEXT" \
|
||||
-d parse_mode="Markdown" \
|
||||
--max-time 10 \
|
||||
--retry 3 > /dev/null || echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ Telegram chyba" >> "$LOG_FILE"
|
||||
--retry 3 > /dev/null || echo "[$(date '+%Y-%m-%d %H:%M:%S')] ️ Telegram chyba" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
# === PROMENNE ===
|
||||
@@ -53,7 +53,7 @@ on_error() {
|
||||
local end_time=$(date +%s)
|
||||
local duration=$((end_time - START_TIME))
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] CHYBA: update.sh skončil s chybou (exit code $exit_code)" >> "$LOG_FILE"
|
||||
send_msg "❌ *[$HOST]* Aktualizace systému selhala (${duration}s).
|
||||
send_msg " *[$HOST]* Aktualizace systému selhala (${duration}s).
|
||||
Zkontroluj log:
|
||||
\`$LOG_FILE\`"
|
||||
exit "$exit_code"
|
||||
@@ -64,7 +64,7 @@ trap on_error ERR
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] === update.sh spusten ===" >> "$LOG_FILE"
|
||||
|
||||
# Notifikace o zacatku
|
||||
send_msg "🔄 *[$HOST]* Spoustim aktualizaci systemu..."
|
||||
send_msg " *[$HOST]* Spoustim aktualizaci systemu..."
|
||||
|
||||
# Aktualizace baliku
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] apt update..." >> "$LOG_FILE"
|
||||
@@ -82,13 +82,13 @@ DURATION=$((END_TIME - START_TIME))
|
||||
# Restart?
|
||||
if [[ -f "$RESTART_REQUIRED" ]]; then
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Restart required" >> "$LOG_FILE"
|
||||
send_msg "⚠️ *[$HOST]* Aktualizace systemu dokoncena (${DURATION}s).
|
||||
send_msg "️ *[$HOST]* Aktualizace systemu dokoncena (${DURATION}s).
|
||||
**Restart serveru je nutny!** Reboot bude proveden za 1 minutu."
|
||||
|
||||
# Naplanovany restart za 1 minutu (at muzes kanclovat)
|
||||
sudo shutdown -r +1 "Systemovy restart po update"
|
||||
else
|
||||
send_msg "✅ *[$HOST]* Aktualizace systemu dokoncena (${DURATION}s).
|
||||
send_msg " *[$HOST]* Aktualizace systemu dokoncena (${DURATION}s).
|
||||
Restart nutny neni."
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user