首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于在linux/php中备份数据库的cron作业

用于在linux/php中备份数据库的cron作业
EN

Stack Overflow用户
提问于 2010-12-12 22:40:46
回答 4查看 4.3K关注 0票数 4

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

我有一个名为dailbackup的文件夹,在这个文件夹中我有一个按日期排列的文件夹,在这个文件夹中我有mysql数据库文件的备份

名称如final_db_9.sql (此备份拍摄于上午9点),final_db_13.sql(此备份拍摄于中午1点,就像这样,

这个过程现在我是手工做的,有没有可能把它自动化,有什么想法,建议,

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-12 22:51:21

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

代码语言:javascript
复制
$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.'"' );
票数 6
EN

Stack Overflow用户

发布于 2010-12-12 23:20:01

在某个地方创建一个脚本来进行滚动备份,如下所示(未经测试,但应该可以工作):

代码语言:javascript
复制
#!/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:

代码语言:javascript
复制
crontab -e

0 * * * * /absolute-path-to-where-you-saved-the-script
票数 5
EN

Stack Overflow用户

发布于 2010-12-12 22:50:53

代码语言:javascript
复制
crontab -e

放在这里:

代码语言:javascript
复制
the_date='date +%Y%m%d'
the_hour='date +%H'
0 * * * * mysqldump OPTIONS > /dailbackup/`$the_date`/final_db_`$the_hour`.sql

上述cron允许您每小时备份一次数据库,并使用%H作为sql文件名

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4422178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档