BASH-script voor website backup

Plaats reactie
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Omdat ik niet meer aan onze Duvel-server geraak ben ik ook de backup-scripts kwijt die Sub Zero destijds gemaakt heeft voor het backuppen van Userbase.

Hoe ik een tarball maak, mysqldump moet gebruiken lukt me nog wel en ook de files extern sftp'en zal me wel terug lukken, maar wat ik niet kan is filerotatie/retentie op die logfiles. Ik ken gewoon niet genoeg van Linux-commando's.

Ik heb al eens gezocht naar kant-en-klare scripts, maar die zijn precies niet zo beschikbaar, of ik kon ze niet interpreteren.
Wie is hier vlot met bash om een simpel backupscript in mekaar te flansen?

Inhoud, grofweg:
tgz maken van de webroot
mysqldump van geselecteerde database, bij voorkeur pipen via bzip2
gegenereerde archief-filenames moet datum en tijd in staan van generatie
files lokaal gedurende X dagen bijhouden
sftp'en naar externe host
files daar ook gedurende X dagen bijhouden

Waarom bij het éne tar + gzip en het andere bzip2 vraag je je misschien af? Ik heb beide voor beide destijds geprobeerd en die combinatie gaf de kleinste files als resultaat :-)
GuntherDW
Elite Poster
Elite Poster
Berichten: 1139
Lid geworden op: 11 mei 2007, 14:00
Locatie: zwijndrecht
Uitgedeelde bedankjes: 12 keer
Bedankt: 78 keer
Contacteer:

Filerotatie/retentie op logfiles is iets wat afhankelijk is van de logging daemon die je eigenlijk gebruikt.
Indertijd (of op non-systemd ditro's dus) is dat iets wat vaak afgehandeld werd door "logrotate".
Dat moest dan ook vaak apart geinstalleerd worden.

Het is een beetje kijk/configwerk indien je wat custom dingen draait maar vaak is het enablen en runnen van deze service voldoende.
Tenzij je hier dan logs voor langer dan een maand wil bijhouden zijn de defaults vaak sane genoeg.

Maar ook in tijden van systemd is het nog altijd logrotate dat hiervoor zorgt. Best kijk je dus even na of het al preinstalled is (wat het zou moeten zijn), en enable je die service als dat nog niet het geval is.
Daarna kan je dan in /etc/logrotate.d/ die dingen nakijken en/of aanpassen/schrijven. Deze configs wijzen vaak genoeg eigenlijk zichzelf uit :)

Trouwens, qua compressie, gezien we nu meer "oomph", hebben, en geen 10 jaar oude bak, misschien kunnen we iets moderner gaan en xz gebruiken voor compressie? Dan kan je gebruik maken van de hoeveelheid cores die je hebt in je systeem voor de compressie, waar dat bij bzip2/gzip vaak met apart geinstalleerde apps moest welke soms niet altijd compliant archives maakten.

"Kant en klare" backupscripts voor webhosting ken ik echter niet, dit doe ik altijd manueel eigenlijk, zoals je het zelf al vermeldde.
Met de functie die je zei dat je nodig hebt denk ik niet echt dat het te ingewikkeld hoeft te zijn.

Al check je best natuurlijk zo nu en dan of je backups natuurlijk nog altijd goed draaien en deze naar offsite gestuurd worden.
Nob
Erelid
Erelid
Berichten: 3373
Lid geworden op: 09 sep 2002, 18:19
Locatie: Belgium, Bever
Uitgedeelde bedankjes: 87 keer
Bedankt: 109 keer
Contacteer:

Userbase draait toch op een vps nu, is het dan niet veel gemakkelijker om snapshots van die vps te nemen?
Gebruikersavatar
devilkin
Elite Poster
Elite Poster
Berichten: 4884
Lid geworden op: 17 mei 2006, 20:10
Uitgedeelde bedankjes: 551 keer
Bedankt: 341 keer
Contacteer:

Daar ben je niet veel mee als je een restore elders moet doen, of je hosting platform offline is.

Ik script dit ook zelf om backups te trekken vanaf shared hosting platformen... Locale cron die een tarball klaarzet, en dan op m'n nas een cronjob die die gaat overtrekken.
Telenet All-Internet -- using CV8560E & OPNsense on PCEngines APU2E4
Proximus & Mobile Vikings -- Using OnePlus 8 Pro (ROM: Stock)
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Er is een verschil tussen backups voor DR-doeleinden (snapshots) en backups voor content-doeleinden :-)

En Userbase draaide voorheen ook al als vps, via Xen.
glorang
Starter
Starter
Berichten: 24
Lid geworden op: 04 mei 2012, 18:17
Uitgedeelde bedankjes: 2 keer
Bedankt: 24 keer

Kan je niet gewoon rdiff-backup gebruiken ? Heb je onmiddelijk alles van backup, scp, retentie, filenames en laatste backup staat atijd klaar.

Ik kan je er zeker wel mee opweg helpen als je wilt!
Gebruikersavatar
Sasuke
Elite Poster
Elite Poster
Berichten: 4854
Lid geworden op: 13 aug 2003, 20:25
Locatie: Vlaanderen
Uitgedeelde bedankjes: 153 keer
Bedankt: 332 keer
Contacteer:

In je script volgende regel toevoegen:

find /path/folder/*.tgz -mtime +5 -exec rm {} \;

De +5 is het aantal dagen dat je wil behouden. Werkt op elke distro
Who the fxxk is General Failure and why is he reading my hard disk ?
Afbeelding
Nob
Erelid
Erelid
Berichten: 3373
Lid geworden op: 09 sep 2002, 18:19
Locatie: Belgium, Bever
Uitgedeelde bedankjes: 87 keer
Bedankt: 109 keer
Contacteer:

meon schreef:Er is een verschil tussen backups voor DR-doeleinden (snapshots) en backups voor content-doeleinden
Uw content zit toch in die snapshots? Als je de content dan echt nodig hebt, kan je die daar toch makkelijk uit halen?

Want allé, eerst zelfs kijken naar het verschil tussen gzip en bzip2 in grootte, maar dan wel ineens zowel snapshots als content backups maken?

Soit, doe natuurlijk wat je niet laten kunt, hoe meer backups hoe beter, maar er zijn nog andere zaken die in orde moeten komen, waar ik niets van hoor.
Wanneer gaat de meeting door bvb?
Plaats reactie

Terug naar “Development”