首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >小时数据库备份

小时数据库备份
EN

Server Fault用户
提问于 2012-12-23 20:50:33
回答 2查看 7.5K关注 0票数 1

我有一个VPS与Kloxo控制面板,我想有数据库备份从我的一个网站在每两个小时。我怎么能这么做?Kloxo不支持每小时备份,只支持每天、每周和每月。

配置: CentOS+Apache+PHP+MysqlAdmin

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-12-23 20:57:52

编写一个小脚本,如:

代码语言:javascript
复制
#!/bin/bash
#
# Do the Backup
#
CURTIME=`date "+%Y%m%d-%H%M"`

mysqldump --user=<dbusername> --password=<dbpassword> --all-databases | lzma -c -9 -z >/backup/db-${CURTIME}.dump.lzma

把这个放到crontab上。(按小时运行将更容易:然后只需将脚本放在/etc/cron.hourly中即可。

票数 2
EN

Server Fault用户

发布于 2012-12-23 21:41:50

每个表db转储、gzip和rsync到其他地方:

代码语言:javascript
复制
#!/usr/bin/ruby
require 'mysql'

rsyncTargets = [
        ["files1" , "/path/to/backup/dir/"],
        ["files2", "/path/to/backup/dir/"],
        ["files3", "/path/to/backup/dir/"]
          ]

tempDir = "/mnt/extra-space"
dumpUser = "root"

`rm -r /mnt/extra-space/*`

con = Mysql.real_connect('localhost',dumpUser,'','')

con.query('show databases').each do |db|
  print " Dumping - " + db[0] + "\n"
  Dir.mkdir("#{tempDir}/#{db[0]}")
  con.query("use #{db[0]}")
  con.query('show tables').each do |table|
    `mysqldump -u #{dumpUser} #{db[0]} #{table[0]} | gzip > #{tempDir}/#{db[0]}/#{table[0]}.sql.gz`
  end
end
con.close()

rsyncTargets.each do |server|
  `rsync -av --delete /mnt/extra-space/ rsync://#{server[0]}:#{server[1]}`
end

摘自:http://techhelplist.com/index.php/tech-tutorials/42-databases/80-ruby-script-for-mysql-dump-gzip-cron-jobs

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

https://serverfault.com/questions/460492

复制
相关文章

相似问题

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