-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcrontab
More file actions
67 lines (59 loc) · 3.51 KB
/
Copy pathcrontab
File metadata and controls
67 lines (59 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# =============================================================================
# DATABASE BACKUP & SYNC AUTOMATION - GÜNLÜK YEDEK
# Server: <YOUR_DB_HOSTNAME>
# Last Updated: 2026-07-21
# =============================================================================
#
# NEDEN GÜNLÜK (15 dakikada bir DEĞİL):
# Yedekler DB container'ının İÇİNDE `docker exec` (mariadb-dump / mongodump) ile
# alınır; dump'ın bellek tüketimi DB container'ının KENDİ cgroup'una sayılır.
# 15 dakikada bir tam yedek, MariaDB'yi tekrar tekrar CONSTRAINT_MEMCG OOM'a
# soktu (container 172 kez restart etti). Günde bir tam yedek + offsite sync
# bu baskıyı ortadan kaldırır.
#
# TIMELINE (Her Gün):
# 02:00 → Full backup (tüm DB'ler)
# 02:30 → Google Drive sync (yedek bittikten sonra)
# 03:00 → Retention temizliği (RETENTION_DAYS=7, backup.sh clean)
# 08:00 → İstatistik raporu
# 03:30 (Pazar) → 7 günden eski logları temizle
#
# =============================================================================
# -----------------------------------------------------------------------------
# BACKUP - Her gün 02:00 (Full backup)
# -----------------------------------------------------------------------------
0 2 * * * /opt/databases/backup.sh all >> /opt/databases/logs/cron_backup.log 2>&1
# -----------------------------------------------------------------------------
# GOOGLE DRIVE SYNC - Yedek bittikten sonra (02:30)
# -----------------------------------------------------------------------------
30 2 * * * /opt/databases/sync_remote.sh >> /opt/databases/logs/cron_sync.log 2>&1
# -----------------------------------------------------------------------------
# MAINTENANCE - Temizlik & Raporlama
# -----------------------------------------------------------------------------
# Eski yedekleri temizle - Her gün 03:00. backup.sh clean, RETENTION_DAYS'i
# (varsayılan 7 gün) kullanır → tek yetki kaynağı; kod ve doküman artık uyumlu.
# (Eski satır `-mmin +360` = 6 saat siliyordu, belgelenen 7 günle çelişiyordu.)
0 3 * * * /opt/databases/backup.sh clean >> /opt/databases/logs/cron_clean.log 2>&1
# Günlük istatistik raporu - Her gün 08:00
0 8 * * * /opt/databases/backup.sh stats >> /opt/databases/logs/cron_stats.log 2>&1
# Log dosyalarını temizle - Her Pazar 03:30 (7 günden eski)
30 3 * * 0 find /opt/databases/logs -name "*.log" -mtime +7 -delete 2>/dev/null
# -----------------------------------------------------------------------------
# OPTIONAL: Disk space alert (uncomment to enable)
# -----------------------------------------------------------------------------
# 0 */6 * * * df -h /opt/databases | awk 'NR==2 && int($5) > 80 {print "DISK WARNING: "$5" used"}' | mail -s "Disk Alert" admin@example.com
# =============================================================================
# NOTES:
# =============================================================================
# - Backup + sync flock ile korunur; eşzamanlı çalışma olmaz (bkz. backup.sh).
# - Günde 4 tam yedek dosyası alınır (MariaDB + PostgreSQL + MongoDB + Redis).
# - 7 günlük retention = ~28 tam yedek dosyası (+ tekil/manuel yedekler).
# - Tahmini disk kullanımı: DB boyutuna göre değişir.
#
# MANUAL COMMANDS:
# - Manual backup: /opt/databases/backup.sh all
# - Manual sync: /opt/databases/sync_remote.sh
# - Check status: /opt/databases/backup.sh stats
# - List backups: /opt/databases/backup.sh list
# - Test sync: /opt/databases/sync_remote.sh test
# =============================================================================