Backup i restore de Drupal

Per fer el backup de Drupal es pot fer servir el següent script, que he extret de la pàgina oficial de Drupal, configurant l’apartat de connexió a la base de dades i el directori d’accés a on es troba instal·lat Drupal:


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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/bin/bash
#
# fullsitebackup.sh V1.1
#
# Full backup of website files and database content.
#
# A number of variables defining file location and database connection
# information must be set before this script will run.
# Files are tar'ed from the root directory of the website. All files are
# saved. The MySQL database tables are dumped without a database name and
# and with the option to drop and recreate the tables.
#
# ----------------------
# March 2007 Updates
#    - Updated script to resolve minor path bug
#    - Added mysql password variable (caution - this script file is now a security risk - protect it)
#    - Generates temp log file
#    - Updated backup and restore scripts have been tested on Ubunutu Edgy server w/Drupal 5.1
#
#    - Enjoy!  BristolGuy
#-----------------------
#
## Parameters:
#    tar_file_name (optional)
#
#
# Configuration
#
# Database connection information
dbname="drupal"     
# (e.g.: dbname=drupaldb) dbhost="localhost" dbuser=""        
# (e.g.: dbuser=drupaluser) dbpw=""
# (e.g.: dbuser password)

# Website Files
webrootdir="/var/www/drupal" 
# (e.g.: webrootdir=/home/user/public_html)

#
# Variables
#
# Default TAR Output File Base Name
tarnamebase=sitebackup
datestamp=`date +'%m-%d-%Y'`

# Execution directory (script start point)
startdir=`pwd` logfile=$startdir"/fullsite.log"

# file path and name of log file to use

# Temporary Directory tempdir=$datestamp

#
# Input Parameter Check
#
if test "$1" = ""
then
    tarname=$tarnamebase$datestamp.tgz
else
    tarname=$1
fi

#
# Begin logging
#
echo "Beginning drupal site backup using fullsitebackup.sh ..." > $logfile

#
# Create temporary working directory
#
echo "   Creating temp working dir ..." >> $logfile
mkdir $tempdir

#
# TAR website files
# echo "   TARing website files into $webrootdir ..." >> $logfile cd $webrootdir tar cf $startdir/$tempdir/filecontent.tar .
#
# sqldump database information
#
echo "   Dumping drupal database, using ..." >> $logfile
echo "      user:$dbuser; database:$dbname host:$dbhost " >> $logfile
cd $startdir/$tempdir
mysqldump --user=$dbuser --password=$dbpw --add-drop-table $dbname > dbcontent.sql

#
# Create final backup file
#
echo "   Creating final compressed (tgz) TAR file: $tarname ..." >> $logfile
tar czf $startdir/$tarname filecontent.tar dbcontent.sql

#
# Cleanup
#
echo "   Removing temp dir $tempdir ..." >> $logfile
cd $startdir
rm -r $tempdir

#
# Exit banner
#
endtime=`date`
echo "Backup completed $endtime, TAR file at $tarname. " >> $logfile

Link dins de Drupal: http://drupal.org/node/129202

El que fa aquest script és una còpia de la BBDD i del sistema de fitxers que haguem especificat en l’apartat de configuració.

Per recuperar el backup realitzat es recomana esborrar la base de dades i crear-la de nou.

 

IMPORTANT!!!!

En reestablir un site des d’una còpia de seguretat, pot ser que les urls no funcionin. Això pot ser culpa de les clean url. Per tant s’haurien de configurar com si no en tinguéssim:


1
2
UPDATE variable SET VALUE = 's:1:"0";' WHERE name = 'clean_url';
DELETE FROM cache;

Quan provem a tornar a entrar al nostre site de Drupal, és probable que surti un missatge dient-nos que el site no esta en funcionament i això pot ser degut a que les dades de configuració d’accés a la base de dades no són correctes. Es modifica el fitxer settings.php posant les dades que calguin i ha de funcionar.

Deixa un comentari o pregunta