TFH Server Backup & Cron Dashboard Documentatie
-
TFH Server Backup & Cron Dashboard Documentatie
Laatst bijgewerkt: 4 februari 2026
Auteur: Nikita Skliarov
1. Database Backup naar Amazon S3
Overzicht
De database (
freighther_nl, ~16 GB) wordt gedumpt metmysqldump, gecomprimeerd metgzip -9en geüpload naar Amazon S3. Gecomprimeerde backups zijn ongeveer 1,4 GB per stuk.Configuratie
Instelling Waarde Script locatie /home/freighther/tfh-backup-database.shS3 bucket tfh-backup-2S3 regio eu-north-1(Stockholm)AWS IAM gebruiker tfh-backup-userAWS credentials Opgeslagen via aws configure(root)Logbestand /home/freighther/backup.logFoutenlog /home/freighther/backup_errors.logAWS IAM Beleid
De
tfh-backup-userheeft een minimaal inline beleid (tfh-backup-s3-access) met alleen deze rechten op detfh-backup-2bucket:s3:PutObjects3:GetObjects3:ListBucket
Cron Schema
Schema Omschrijving 0 9-17/2 * * *Elke 2 uur, 9:00 – 17:00 0 18,22,2,6 * * *Elke 4 uur, 18:00 – 8:00 Handmatige Commando's
# Backup handmatig uitvoeren /home/freighther/tfh-backup-database.sh # Backup log bekijken tail -f /home/freighther/backup.log # Backups in S3 bekijken aws s3 ls s3://tfh-backup-2/thefreighthero.nl/ # Backup downloaden vanuit S3 aws s3 cp s3://tfh-backup-2/thefreighthero.nl/BESTANDSNAAM.tar.gz /tmp/ # Database herstellen vanuit backup gunzip < /tmp/BESTANDSNAAM.tar.gz | mysql -u freighther_nl -p freighther_nlAWS CLI Opnieuw Configureren
Als de credentials geroteerd moeten worden:
aws configure # Voer nieuwe Access Key ID, Secret Access Key in, regio: eu-north-1, output: jsonNieuwe access key aanmaken: AWS Console → IAM → Users → tfh-backup-user → Security credentials → Create access key
2. Crontab Guru Dashboard
Overzicht
Een zelf-gehost webdashboard voor het monitoren en beheren van cron jobs. Geïnstalleerd via Cronitor CLI. De webinterface op
cronitor.iotoont logs en jobstatus, maar kan geen jobs verwijderen of bewerken — alleencrontab -eop de server kan jobs aanpassen.Service
Instelling Waarde Service naam crontab-guruService bestand /etc/systemd/system/crontab-guru.servicePoort 9000(alleen localhost)Binary /usr/bin/cronitorTelemetrie Uitgeschakeld Service Beheren
# Status controleren systemctl status crontab-guru # Herstarten systemctl restart crontab-guru # Stoppen systemctl stop crontab-guru # Logs bekijken journalctl -u crontab-guru -fDashboard Openen
Het dashboard is alleen bereikbaar via SSH tunnel — het is niet toegankelijk via het internet.
Vanaf je lokale machine (laptop):
ssh -L 9000:localhost:9000 root@thefreighthero.comOpen daarna in je browser: http://localhost:9000
Log in met het dashboard gebruikersnaam en wachtwoord.
Dashboard Wachtwoord Wijzigen
cronitor configure --dash-username NIEUWE_GEBRUIKERSNAAM --dash-password NIEUW_WACHTWOORD systemctl restart crontab-guruCronitor.io Cloud Interface
Het dashboard is ook gekoppeld aan cronitor.io — een online interface waar je logs en jobstatus kunt bekijken. Dit is alleen-lezen: je kunt geen jobs verwijderen of bewerken via de website.
Voordelen:
- Meldingen ontvangen als een backup of cron job mislukt
- Overzicht van alle jobs zonder SSH tunnel nodig
Wat Cronitor ziet:
- Job namen, schema's, uitvoertijden, succes/faal status
Wat Cronitor NIET ziet:
- Geen database inhoud, geen bestanden, geen wachtwoorden
- Geen SSH toegang, geen inkomend verkeer (server stuurt alleen data naar Cronitor, niet andersom)
Inloggen: cronitor.io met je Cronitor account
Meldingen instellen: Cronitor.io → Alerts → configureer e-mail of SlackBeveiliging
- Dashboard luistert alleen op
localhost:9000— niet bereikbaar vanaf het internet - Toegang vereist een SSH tunnel (= SSH inloggegevens nodig)
- Dashboard login vereist een apart gebruikersnaam/wachtwoord
- De online Cronitor webinterface is alleen-lezen (logs bekijken, geen jobs bewerken)
- Cronitor account beveiligen met een sterk wachtwoord en bij voorkeur 2FA
3. S3 Kosten & Retentiebeleid
Retentiebeleid
Er is een S3 lifecycle rule ingesteld die backups automatisch verwijdert na 2 dagen. Hierdoor zijn altijd de backups van vandaag en gisteren beschikbaar, en alles ouder wordt automatisch opgeruimd.
Lifecycle rule configuratie:
- Naam:
delete-old-backups - Scope: Alle objecten in de bucket
- Actie: Expire current versions of objects
- Na: 2 dagen
Kostenberekening (S3 Standard, eu-north-1 Stockholm)
Onderdeel Prijs Opslag $0,023 per GB per maand PUT verzoeken (uploads) $0,005 per 1.000 verzoeken DELETE verzoeken (verwijdering) Gratis Lifecycle expiratie acties Gratis Geschatte maandelijkse kosten:
Onderdeel Berekening Kosten/maand Opslag ~9 backups/dag × 2 dagen × 1,5 GB = ~27 GB ~$0,62 PUT verzoeken ~270 uploads/maand ~$0,001 Totaal ~$0,62/maand De kosten stijgen evenredig als de database groeit. Bij een verdubbeling naar 3 GB per backup worden de kosten ~$1,10/maand.
4. Overzicht Alle Cron Jobs
# Database backup: elke 2 uur tijdens kantooruren 0 9-17/2 * * * /home/freighther/tfh-backup-database.sh >> /home/freighther/backup.log 2>&1 # Database backup: elke 4 uur buiten kantooruren 0 18,22,2,6 * * * /home/freighther/tfh-backup-database.sh >> /home/freighther/backup.log 2>&1 # Server health check: dagelijks om 6:00 0 6 * * * /usr/local/bin/server-health-check.sh # Redis herstarten: elk uur 0 * * * * systemctl restart redis.serviceCron Jobs Bewerken
crontab -e # Cron jobs bewerken crontab -l # Huidige cron jobs bekijken
-
N nikitaskliarov moved this topic from Documentatie on