trabajo cron para hacer una copia de seguridad de la base de datos en linux / php

Soy nuevo en el trabajo cron de linux, estoy usando MySQL DB, mi nombre de base de datos finaldb, quiero tomar esta base de datos cada una hora,

Tengo una carpeta llamada dailbackup, en esta tengo una carpeta por fecha sabia, en esta cada carpeta tengo copia de seguridad de archivo mysql db

nombre como final_db_9.sql (esta copia de seguridad se tomó a las 9:00 a.m.), final_db_13.sql (esta copia de seguridad se realizó al mediodía a la 1 p.m., así,

este proceso actualmente lo estoy haciendo manualmente, ¿es posible automatizarlo, cualquier idea, sugerencia,

Crea un script PHP que contenga lo siguiente:

$dbFile = 'final_db'.date('H').'.sql.gz'; $dbHost = 'localhost'; // Database Host $dbUser = 'username'; // Database Username $dbPass = 'password'; // Database Password exec( 'mysqldump --host="'.$dbHost.'" --user="'.$dbUser.'" --password="'.$dbPass.'" --add-drop-table "finaldb" | gzip > "'.$dbFile.'"' ); 

Cree en alguna parte una secuencia de comandos para hacer sus copias de seguridad continuas, como esta (no comprobado, pero debería funcionar):

 #!/bin/bash BKPDIR=dailbackup # You must use absolute path here DB=finaldb USERNAME=myusername PASSWORD=mypassword BKPFILE=${BKPDIR}/`date +%Y-%m-%d`/final_db_`date +%H`.sql # Create backup mysqldump --user=${USERNAME} --password=${PASSWORD} ${DB} | gzip -c > ${BKPFILE} # Remove older backups (> 7 days), # unless you want to run out of drive space find ${BKPDIR} -mtime +7 -print0 | xargs -0 rm -rf 

Luego configure esta secuencia de comandos para que se ejecute como cronjob por hora:

 crontab -e 0 * * * * /absolute-path-to-where-you-saved-the-script 
 crontab -e 

poniendo esto:

 the_date='date +%Y%m%d' the_hour='date +%H' 0 * * * * mysqldump OPTIONS > /dailbackup/`$the_date`/final_db_`$the_hour`.sql 

el cron anterior le permite hacer una copia de seguridad de la base de datos cada hora y usar el nombre de archivo %H como sql

Un trazador de líneas no probado:

 mysqldump -u*user* -p*password* -P*dbport* -h localhost finaldb > /.../dailbackup/final_db_$(date +%Y-%m-%d_%H_%M).sql 

simplemente agréguelo a su trabajo cron o envuélvalo en un script y listo

Sí, por supuesto, puedes hacerlo siempre y cuando tu servidor mysql esté listo y escuchando :). Tendrá que hacer un script de shell o perl y usar edit the crond usando el siguiente comando (en Fedora):

 crontab -e

Los componentes de tu trabajo cron son ::

1) Ruta a su script (ejecutable)

2) Minutos (00-59)

3) Horas (00 – 23)

4) Mes (01-12)

5) Día (01-31)

6) Día de la semana (00 -06 con 00 como domingo)

Ejemplo :: Usted puede ejecutar script test_pl todos los días a las 1200

la entrada en crontab será ::

00 12 * * * / home / jok / test_pl