Automatiser din WordPress Backup Med Simple Shell Scripting & CRON

Automatiser din WordPress Backup Med Simple Shell Scripting & CRON / Wordpress og webutvikling

Siste gang vi snakket om WordPress-sikkerhetskopier, viste jeg deg hvor utrolig lett det var å sikkerhetskopiere hele databasen og filene, selv om SSH. Slik sikkerhetskopierer du nettstedet ditt via SSH-kommandolinjen. Slik sikkerhetskopierer du ditt nettsted gjennom SSH-kommandolinjen Sikkerhetskopiering av nettstedet eller bloggen kan være en dyr og vanskelig oppgave, som krever en rekke plugins, eller flere planer fra din hosting leverandør - men det trenger ikke å være virkelig. Hvis du har SSH ... Les mer med bare noen få kommandoer. Denne gangen skal jeg vise hvordan du automatiserer disse kommandoene, og gir deg ferske sikkerhetskopier av hele nettstedet hver uke, med svært liten innsats. Dette vil også fungere som en flott introduksjon til både skriptskript og CRON hvis du aldri har rørt dem før - nøkkelen til å lære slike store emner er å starte rett ved å bruke dem til å gjøre noe som er nyttig for deg.

Oppsummering: Sikkerhetskopier alt

Vi dekket denne siste gangen, men en rask tilbakemelding på de to kommandoene som trengs for å sikkerhetskopiere databasen og filene, forutsatt at du allerede har logget inn og flyttet deg til webkatalogen (les den første opplæringen hvis du ikke forstår). Pass på at du gjør dem i denne rekkefølgen, slik at sikkerhetskopieringen av filer inneholder databasen filen du sender ut i den første kommandoen:

mysqldump --add-drop-table -u brukernavn -p databasenavn> databasebackup.sql tar -cf backupfile.tar .

Bytt ut brukernavn og databasenavn elementer med databasen og brukernavn detaljer.

Automatisering Trinn 1: Skripting

For nå skal vi lage et nytt skript som bare kjører kommandoene du lærte for sikkerhetskopiering, med noen få endringer for å inkludere passordet også (siden dette blir automatisert, vil du ikke kunne skrive inn passordet hver gang ). Når vi er ferdige, bør du bli igjen med bare én kommando for å kjøre som vil utføre to kommandoer for deg!

Det er også på tide du lærte å redigere tekstfiler gjennom kommandolinjen, da du ikke kan stole på FTP og GUI hele tiden. Du kan bruke en enkel tekstbasert redaktør kalt vi for å gjøre dette.

For å starte appen og opprette ditt første skript, skriv inn:

vi minbackupscript.sh

Hvis filen ikke eksisterer allerede, vil den bli opprettet, og du vil bli vist en ganske skremmende skjerm som ligner dette:

vi har to moduser - rediger og kommandomodus. For å komme inn i redigeringsmodus, trykk på i. Da kan du begynne å skrive. Du vet at det virket, fordi bunnen til venstre vender seg til -SERT-

Start med å skrive ut følgende:

#! / bin / sh mysqldump - add-drop-table -ubrukernavn -ppassord tabellnavn > dbbackup.sql tar-cf backup.tar .

Legg merke til at denne gangen, inkluderer vi passordet i kommandoen. Legg merke til at når vi bruker p-bryteren til å spesifisere passordet, legger vi passordet umiddelbart etter det uten mellomrom mellom dem. Hvis du foretrekker det, kan du skrive kommandoen som dette i stedet, men funksjonelt er det ingen forskjell:

#! / bin / sh mysqldump - add-drop-table --user =brukernavn --password =passord tabellnavn > dbbackup.sql tar-cf backup.tar .

Nå må vi lagre det. Trykk ESC en gang for å komme ut av redigeringsmodus og til kommandomodus for tekstredigeringsprogrammet. Type:

:skrive

og trykk deretter på, deretter

:slutte

og skriv inn igjen.

Så nå har du funnet ut at noen kommandoer du gir må føres av en kolon. Det er alt sammen med vi for nå.

Tilbake på kommandolinjen, fortsett og gjør det nye skriptet ditt kjørbart ved å skrive inn følgende:

chmod 744 mybackupscript.sh

Og til slutt, teste det ut med:

./mybackupscript.sh

Avhengig av størrelsen på nettstedet ditt og hastigheten på serveren din, kan det ta en stund. På slutten av det kan du liste filene og finne en backup.tar. På min virtuelle private server tok det omtrent 5 sekunder å lage 100MB WordPress-siden backup.

Automatisering Trinn to: CRON

CRON er en oppgaveplanlegger for Linux. Vi vil ikke dekke det i dybden her, men jeg vil gi deg det du trenger for å kjøre backup-scriptet ditt hver uke. Vi har også dekket hvordan du kjører CRON-jobber fra ditt GUI-baserte nettstedskontrollpanel. For å legge til en oppgave i CRON scheduler, legger du ganske enkelt til en linje til “crontab”. Rediger dette ved å skrive:

crontab -e

Dette åpner CRON-filen i tekstredigeringsprogrammet, sannsynligvis vi igjen. Hvis du aldri har lagt til noe før, er det også sannsynlig at det er tomt. Ingen bekymringer. Legg til disse linjene:

00 4 * * 0 /httpdocs/mybackupscript.sh

Formatet denne kommandoen følger er litt vanskelig, men går slik:

minutters time dag-i-måneden måned ukedag

A * i mønsteret ignorerer det aktuelle elementet. Så i eksemplet ovenfor, skal vi kjøre vårt backup-skript på 00 minutter 4 timer, hver 0 (søndag) i uken.

Her er noen andre eksempler som hjelper deg å forstå:

01 * * * * echo "Denne kommandoen kjøres på en minutt forbi hver time" 17 8 * * * ekko "Denne kommandoen kjøres daglig klokken 8:17" 17 20 * * * echo "Denne kommandoen kjøres daglig på 8 : 17:00 "00 4 * * 0 ekko" Denne kommandoen kjøres klokken 4 hver søndag "* 4 * * Sun echo" Så er dette "42 4 1 * * echo" Denne kommandoen kjøres klokken 4:42 hver 1. måneden "01 * 19 07 * ekko" Denne kommandoen kjøres hver time 19. juli "

Når du har skrevet inn det, lagrer du filen ved å trykke på ESC, og deretter skriver du: skriv etterfulgt av: avslutte. En snarvei versjon av dette er å bare skrive: wq, som både vil skrive filen og avslutte. Det er praktisk, men hvis du er noe som meg, glemmer du disse små snarveiene.

Det er det! Du har nå en oppdatert kopi av databasen og hele nettstedet i roten, kalt backup.tar (eller hva du valgte å nevne det). Du vil kanskje lære litt mer skript for å legge til datoen på slutten av filnavnet og unngå å overskrive den samme en gang til, men det er opp til deg å oppdage. Jeg håper du kan se hvor kraftig kommandolinjen faktisk er nå!

Utforsk mer om: Computer Automation, Data Backup, Programmering, Wordpress.