31. marts 2005 - 21:22Der er
27 kommentarer og 1 løsning
backup af mysql
Hej, jeg har et site hvor jeg kunne tænke mig at få et script, der sender en backup af databasen til min email hver dag. Kan det lade sig gøre?
Jeg har læst lidt forskellige steder om bla cron-job og har os fundet et script som genererer en fil. Men jeg har ik kunne finde noget hvor backup'en bliver sendt til en email en gang i døgnet.
Håber derfor at nogen ligger inde med sådn et script eller et der kan tilpasses.
Det er efterhånden et klassisk spørgsmål herinde. Når er har din side hos b-one kan du ikke udføre scripts via cron, så du skal ud i noget webcron. Jeg har desværre ikke noget link liggende :)
For at udføre et job fx. 1 gang i døgnet, skal der enten et Conjob eller en Planlagt opgave, som kører på et bestemt tidspunkt. Jobbet vil kalde den PHP side eller andet som du ønsker og kører siden !
Man bestiller feks et dagligt besøg på sin side. Så nu skal jeg bare have lavet en backup.php med et script som udfører backup'en.
Det jeg gerne vil have, er at backup'en bliver gemt som en fil på serveren. Filens navn bliver så dagens nummer i måneden (altså 1.sql til 30.sql)(og feks kun de 'lige' dage)
Her er et script, som måske kan tilpasses til det: (håber nogen kan hjælpe lidt)
$dbhost = "localhost"; $dbuname = "root"; $dbpass = ""; $dbname = ""; #%% Backup function // det kan jo godt tage lidt tid på en større DB @set_time_limit(600); $strNoTablesFound = "Ingen databasetabeller fundet"; $strHost = "Host"; $crlf="\n"; $strDatabase = "Database "; $strTableStructure = "Struktur for tabel"; $strDumpingData = "Indhold af tabel"; $strError = "Fejl"; $strSQLQuery = "SQL-query"; $strMySQLSaid = "MySQL: "; $strBack = "Tilbage"; $strFileName = "Backup"; $strName = "Backup af database"; $strDone = "Downloadet d."; $strat = "kl."; $date_jour = date ("d-m-Y");
Come on, er der ik en der kan hjælpe mig med at lave det script til? Bare lave det til så den gemmer filen på serveren og derefter sender den som vedhæftet fil i en email...
Jeg har været ved at kigge lidt på scriptet længere oppe. Og jeg vil benytte det. Jeg kan ik forstå hvorfor der står global i disse linier:
global $bruger, $dbhost, $dbuname, $dbpass, $dbname; mysql_connect($dbhost, $dbuname, $dbpass); @mysql_select_db("$dbname") or die ("Kunne ikke forbinde til databasen");
Det er da ik nødvendigt at lave dem global er det???
Ja, det har jeg kigget på.. Og jeg kan umiddelbart ikke se hvilken funktion der benytter variablerne. Har lige kigget det igennem en ekstra gang og kan stadig ikke se at der kan ske noget ved at fjerne den 'global'
Jeg har os prøvet scriptet og det ser ud til at virke som det skal.
Tror du ik det er OK ? Eller er der noget jeg har overset...
Du får nogle point detox for det her! :o) Skal nok huske dig når jeg lukker/accepterer!
Nu har jeg lavet en okay løsning hvor jeg får en påmindelse hver tredje dag om at tage en backup. Og så er der blot et link jeg følger. Det er rimelig let..
Men er der nogen der har en rigtig god backup-løsning, så smid den her! :o) Skal være en der sender en backup til min email. og det skal køre automatisk og jeg kører i safe mode og hoster ik selv!
Som du har fået af vide så er der ikke særlig mange muligheder end at få nogen udefra til at gøre det eller få dem der hoster dig til at sætte et Auto job op hvis det skal foregå automatisk !
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.