我是新的linux cron作业,我正在使用mysql DB,我的数据库名称finaldb,我想每一小时使用这个数据库,
我有一个名为dailbackup的文件夹,在这个文件夹中我有一个按日期排列的文件夹,在这个文件夹中我有mysql数据库文件的备份
名称如final_db_9.sql (此备份拍摄于上午9点),final_db_13.sql(此备份拍摄于中午1点,就像这样,
这个过程现在我是手工做的,有没有可能把它自动化,有什么想法,建议,
发布于 2010-12-12 22:51:21
创建包含以下内容的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.'"' );发布于 2010-12-12 23:20:01
在某个地方创建一个脚本来进行滚动备份,如下所示(未经测试,但应该可以工作):
#!/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发布于 2010-12-12 22:50:53
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文件名
https://stackoverflow.com/questions/4422178
复制相似问题