我们来自五湖四海,不为别的,只因有共同的爱好,为中国互联网发展出一分力!
领航时时彩重庆版

uc时时彩网址是多少:小型Drupal数据库备份以及大型站点MySQL备份策略分享

2014年11月29日03:42 阅读: 25353 次

领航时时彩重庆版 www.9nwl5.cn 标签: 小型Drupal数据库备份以及大型站点M

为了防止web服务器出现故障而引起的数据丢失,数据库备份显得非常重要,以免出现重大损失。本文分析研究一下小型的Drupal站的备份策略以及大型站点的mysql备份策略

中小站点简单备份策略


基于drupal的中小行网站,我们可以使用backup_migrate???,该??樘峁┝硕ㄆ诒阜莸墓δ?,备份的时间、保留多少个备份等等设置,设置好之后,定期执行cron即可备份成功。
一般的Drupal小站,我们只需使用svn即可,在服务器端,我们把备份好的数据提交到svn,就可以达到备份的目的。由于Drupal的备份??榭梢陨柚帽阜荼A舻奈募菔?,因此不会造成太多的备份文件,从而导致svn很大。


下面是一个简单的备份脚本,放置到站点根目录,然后加到crontab每天执行即可。





?





1
2
3
4
5
6
7
8
9
10
11

#!/bin/bash
 
date #start date
DRUSH_PHP=/bin/php #php path
export DRUSH_PHP
 
drush cron
svn st sites/default/files/backup_migrate/scheduled/ | grep '^!' | awk '{print $2}' | xargs svn delete --force
svn add sites/default/files/backup_migrate/scheduled/*
svn ci sites/default/files/backup_migrate/scheduled/ -m 'add backup files'
date #end date

crontab的设置如下




复制代码
代码如下:


0  0 * * * cd /www/web/html/ &&
bash cron.sh > cron.log 2>&1



大型站点MySQL备份策略


如果是数据库稍大的站点,使用svn临时备份就略显单薄,这时需要使用MySQL备份策略,一般情况下我们需要把整个数据库都备份压缩,然后定期转移到备份数据库或者放到其他的云服务器,这里给出一个简单的PHP示例代码。





?





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

#!/usr/bin/php -q
<?php
 
$hostname = exec('/bin/hostname');
$mycnf = "/home/robbin/.my.cnf";
 
$ignore = array('information_schema', 'test', 'mysql', 'wdcpdb');
 
function trimw($str) {
$str = str_replace(array("n", "r", "t", " ", "o", "xOB"), '', $str);
return $str;
}
 
if (!file_exists($mycnf)) {
mail($to, "No .my.cnf exists on $hostname", "MySQL cannot dump because .my.cnf is missing on $hostname .") ;
exit("cant get user creds");
}
 
$myconf = file_get_contents($mycnf) or die( "Failed to open bmesh_admin's .my.cnf" );
 
preg_match( "/buser(.*)/", $myconf, $matches ) or die( mail($to, "No username in .my.cnf on $hostname", "MySQL cannot dump on $hostname"));
 
$usr = (explode('=', $matches[0]));
$user = trimw($usr[1]);
 
preg_match( "/bpassword(.*)/", $myconf, $matches ) or die( mail($to, "No password in .my.cnf on $hostname", "MySQL cannot dump on $hostname"));
 
$pass = (explode('=', $matches[0]));
$password = trimw($pass[1]);
 
mysql_connect("localhost",$user,$password) or die ("could not connect: " . mysql_error());
mysql_select_db("mysql");
$result = mysql_query("show databases");
 
$bpath = "/home/robbin/backup/mysql";
$btime = date("Y-m-d H:i:s");
$bstamp = strtotime($btime);
$byear = date("Y", $bstamp);
$bmonth = date("m", $bstamp);
$bday  = date("d", $bstamp);
$btod  = date("H-i-s", $bstamp);
 
while ($res = mysql_fetch_array($result))
{
    $myDb = $res["Database"];
    if (in_array($myDb, $ignore)) continue;
    $mdir = "$bpath/$byear/$bmonth/$bday/$btod/$myDb";
    $out = `mkdir -p $mdir`;
    $myFile = $myDb . ".sql";
    $bldCmd = "cd $mdir ; ";
    $bldCmd .= "mysqldump -u$user -p$password --single-transaction --add-drop-table -R -c -Q $myDb > $myFile ;";
    //$bldCmd .= "chmod 644 $myFile ; ";
    //$bldCmd .= "chown root:root $myFile ; ";
    $bldCmd .= "gzip -9 $myFile";
    print "Backing up $myDbn";
    print "Securing $myDbn";
    $out = `$bldCmd`;
}
$out = `chmod 700 $bpath/$byear`;
print "$outn";
print "Backups are in $bpathn";

crontab的设置




复制代码
代码如下:


0 1 * * *
/home/robbin/bin/mysql_backup.php



此外我们需要把备份的数据还要定期传送到其他服务器上,才会避免服务器崩溃而引发数据丢失。备份及时网站才有保证,这里仅仅只是笔者的一点点操作分享,大家有更好的备份策略,欢迎共享。

 
分享到: 更多
©2019 安全焦点 版权所有.

  • 高校“双一流”建设:从美国高校看“四个回归” 2019-06-21
  • 【新时代幸福美丽新边疆】美图赏析:大自然的“奥秘” 2019-06-09
  • 北京百子湾车祸致2死3伤 小客车女司机系无证驾驶 2019-06-09
  • 蔬菜-热门标签-华商生活 2019-06-04
  • 出生打满分 8斤宝宝为何测不出血糖? 2019-06-04
  • 报道新闻记录历史 70载人民日报见证中国发展大事 2019-06-01
  • 习近平两会“典”亮新时代 2019-05-31
  • 马克思报刊批判的理性光辉 2019-05-26
  • “福泽潇湘·共同见证”爱心彩民参与福彩公益金资助项目 2019-05-24
  • 打造“重庆造”的创新升级版 2019-05-24
  • 平昌冬奥会冠军武大靖低调回家乡利辛探亲祭祖 2019-05-21
  • 打房主分房子,而必逼成! 2019-05-21
  • 让人才如“夏花般灿烂” 2019-05-19
  • 湖北治理违规提取公积金 防止用公积金炒房 2019-05-14
  • 2018“文化和自然遗产日”非遗影像展:电影《侗族大歌》观众流泪观影——晋中频道 2019-05-11
  • 辽宁十一选五方法 贵州快3开奖结果贵州 海南七星彩走势图规 缅甸真人龙虎斗 宁夏十一选五下载 浙江体彩20选5复式对 彩票app设计 江西快三技巧 北单比分直播500 世界彩票大奖中奖号码 梅西总进球 小马哥3D294期预测号码多少呢 黑龙江p62中奖号码 cba全明星投票 大乐透有那些号码是什么意思