cron作业在linux / php中备份数据库

我是新的linux的cron作业,我使用mysql数据库,我的数据库名finaldb,我想每隔一小时拿这个数据库,

我有文件夹叫dailbackup,在这个我有文件夹明智的date,在这个每个文件夹我有备份MySQL数据库文件

名字像final_db_9.sql(这个备份是在早上9点采取的),final_db_13.sql(这个备份是在中午1点采取的,

目前这个过程是手工做的,是否有可能使它自动化,有什么想法,build议,

Solutions Collecting From Web of "cron作业在linux / php中备份数据库"

创建一个包含以下内容的PHP脚本:

$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.'"' ); 

创建一个脚本来做你的滚动备份,像这样(未经测试,但应该工作):

 #!/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 

然后设置这个脚本运行一个小时cronjob:

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

把这个:

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

上面的cron允许你每小时备份数据库并使用%H作为sql文件名

未经测试的一个班轮:

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

只需将其添加到您的cron作业或包装在一个脚本,你就完成了

当然,只要你的mysql服务器已经启动并且正在监听,你就可以做到这一点:)。 您将需要创建一个shell或perl脚本,并使用下面的命令(在Fedora中)使用编辑crond:

 crontab -e

您的cron工作的组件是::

1)脚本路径(可执行文件)

2)分钟(00-59)

3)小时(00 – 23)

4)月份(01-12)

5)第(01-31)

6)星期几(00-06星期天00)

示例::你每天要运行test_pl脚本,在1200

在crontab中的入口将是::

00 12 * * * / home / jok / test_pl