Skip to content
sept 16 / David Regnier

Script pour une mise à jour automatique de Typo3

Cet article traite des montées de version de Typo3 4.5.x.
Vous avez la possibilité d’utiliser ce script pour automatiser l’ « upgrade » de votre version de Typo3.
Le script backup votre ancienne release Typo3 et va mettre en place les nouvelles sources sur votre serveur Linux.

Script pour l’ « upgrade » de Typo3: update_typo3.sh

01
02
03
04
05
06
07
08
09
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
#!/bin/sh
 
#
# Author : regnier_david@yahoo.fr
# Purpose: Upgrade typo3 version
#
 
#########################################################
# BEGIN EDIT THIS ONLY
#########################################################
 
# Adjust var, Typo3 version etc ...
TYPO3_DIR="typo3_instance"
TYPO3_NEW_VERSION_DIR="/home/user/packages/typo3_src-4.5.5/"
 
#########################################################
# END EDIT THIS ONLY
#########################################################
 
#########################################################
# DO NOT EDIT LINES ABOVE
#########################################################
DAY_DATE=$(date +"%d%m%Y")
TYPO3_BACKUP_DIR='/home/user/backup/backup_'$TYPO3_DIR'_'$DAY_DATE'/'
TYPO3_TEMP_DIR='/home/user/backup/temp/'
TYPO3_CURRENT_VERSION_DIR='/www/html/'$TYPO3_DIR'/'
 
clear
 
#
# Backup old Typo3 version
#
echo "Step 1 -> Backup old Typo3 version"
mkdir -p $TYPO3_BACKUP_DIR
mkdir -p $TYPO3_TEMP_DIR
# t3lib
/bin/cp -rf $TYPO3_CURRENT_VERSION_DIR't3lib/' $TYPO3_BACKUP_DIR >/dev/null 2>&1
# typo3
/bin/cp -rf $TYPO3_CURRENT_VERSION_DIR'typo3/' $TYPO3_BACKUP_DIR >/dev/null 2>&1
# index.php
/bin/cp -f $TYPO3_CURRENT_VERSION_DIR'index.php' $TYPO3_BACKUP_DIR >/dev/null 2>&1
# localconf.php
/bin/cp -f $TYPO3_CURRENT_VERSION_DIR'typo3conf/localconf.php' $TYPO3_BACKUP_DIR >/dev/null 2>&1
 
#
# Delete old Typo3 version
#
echo "Step 2 -> Move old Typo3 version"
# t3lib
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR't3lib/' $TYPO3_TEMP_DIR >/dev/null 2>&1
# typo3
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'typo3/' $TYPO3_TEMP_DIR >/dev/null 2>&1
# index.php
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'index.php' $TYPO3_TEMP_DIR >/dev/null 2>&1
 
#
# Copy new Typo3 version
#
echo "Step 3 -> Copy new Typo3 version"
/bin/cp -rf $TYPO3_NEW_VERSION_DIR* $TYPO3_CURRENT_VERSION_DIR >/dev/null 2>&1
 
#
# Cleanup temp*
#
echo "Step 4 -> Cleanup temp DIR and temp_CACHED* files"
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'typo3temp/'* $TYPO3_TEMP_DIR >/dev/null 2>&1
mkdir -p $TYPO3_CURRENT_VERSION_DIR'typo3temp/llxml'
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'typo3conf/temp_CACHED'* $TYPO3_TEMP_DIR >/dev/null 2>&1
 
#
# Fix permissions
#
echo "Step 5 -> Fix permissions"
chown apache:apache -R $TYPO3_CURRENT_VERSION_DIR*
chmod 755 -R $TYPO3_CURRENT_VERSION_DIR*
 
# Done
echo "Step 6 -> Upgrade done"

Script pour le « rollback » de Typo3: rollback_typo3.sh

01
02
03
04
05
06
07
08
09
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
#!/bin/sh
 
#
# Author : regnier_david@yahoo.fr
# Purpose: Rollback typo3 version
#
 
#########################################################
# BEGIN EDIT THIS ONLY
#########################################################
 
# Adjust var, Typo3 version etc ...
TYPO3_DIR="typo3_instance"
 
#########################################################
# END EDIT THIS ONLY
#########################################################
 
#########################################################
# DO NOT EDIT LINES ABOVE
#########################################################
DAY_DATE=$(date +"%d%m%Y")
TYPO3_BACKUP_DIR='/home/user/backup/backup_'$TYPO3_DIR'_'$DAY_DATE'/'
TYPO3_TEMP_DIR='/home/user/backup/temp_rollback/'
TYPO3_CURRENT_VERSION_DIR='/www/html/'$TYPO3_DIR'/'
 
clear
 
#
# Move new Typo3 release
#
echo "Step 1 -> Move new release to temp DIR"
mkdir -p $TYPO3_TEMP_DIR
# t3lib
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR't3lib/' $TYPO3_TEMP_DIR >/dev/null 2>&1
# typo3
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'typo3/' $TYPO3_TEMP_DIR >/dev/null 2>&1
# index.php
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'index.php' $TYPO3_TEMP_DIR >/dev/null 2>&1
# localconf.php
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'typo3conf/localconf.php' $TYPO3_TEMP_DIR >/dev/null 2>&1
 
#
# Copy old Typo3 release
#
echo "Step 2 -> Copy old Typo3 version"
# t3lib
/bin/cp -rf $TYPO3_BACKUP_DIR't3lib/' $TYPO3_CURRENT_VERSION_DIR >/dev/null 2>&1
# typo3
/bin/cp -rf $TYPO3_BACKUP_DIR'typo3/' $TYPO3_CURRENT_VERSION_DIR >/dev/null 2>&1
# index.php
/bin/cp -f $TYPO3_BACKUP_DIR'index.php' $TYPO3_CURRENT_VERSION_DIR >/dev/null 2>&1
# localconf.php
/bin/cp -f $TYPO3_BACKUP_DIR'localconf.php' $TYPO3_CURRENT_VERSION_DIR'typo3conf/' >/dev/null 2>&1
 
#
# Cleanup temp*
#
echo "Step 4 -> Cleanup temp DIR and temp_CACHED* files"
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'typo3temp/'* $TYPO3_TEMP_DIR >/dev/null 2>&1
mkdir -p $TYPO3_CURRENT_VERSION_DIR'typo3temp/llxml'
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'typo3conf/temp_CACHED'* $TYPO3_TEMP_DIR >/dev/null 2>&1
 
#
# Fix permissions
#
echo "Step 5 -> Fix permissions"
chown apache:apache -R $TYPO3_CURRENT_VERSION_DIR*
chmod 755 -R $TYPO3_CURRENT_VERSION_DIR*
 
# Done
echo "Step 6 -> Upgrade done"

Autre version pour l’ « upgrade » de Typo3 (cette version va vérifier les répertoires): update_typo3_v2.sh

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/bin/sh
 
#
# Author : regnier_david@yahoo.fr
# Purpose: Upgrade typo3 version
#
 
#########################################################
# BEGIN EDIT THIS ONLY
#########################################################
 
# Adjust var, Typo3 version etc ...
TYPO3_DIR="typo3_dev"
TYPO3_NEW_VERSION_DIR="/home/user/livraison/packages/typo3_src-4.5.5/"
# Adjust server for matching
# dev / recette / prod
TYPO3_SERVER="dev"
 
#########################################################
# END EDIT THIS ONLY
#########################################################
 
#########################################################
# DO NOT EDIT LINES ABOVE
#########################################################
DAY_DATE=$(date +"%d%m%Y")
TYPO3_BACKUP_DIR='/home/user/backup/backup_'$TYPO3_DIR'_'$DAY_DATE'/'
TYPO3_TEMP_DIR='/home/user/backup/temp/'
TYPO3_CURRENT_VERSION_DIR='/www/html/'$TYPO3_DIR'/'
 
clear
 
# Init function
call_main_process () {
#
# Backup old Typo3 version
#
echo "Step 1 -> Backup old Typo3 version"
mkdir -p $TYPO3_BACKUP_DIR
mkdir -p $TYPO3_TEMP_DIR
# t3lib
/bin/cp -rf $TYPO3_CURRENT_VERSION_DIR't3lib/' $TYPO3_BACKUP_DIR >/dev/null 2>&1
# typo3
/bin/cp -rf $TYPO3_CURRENT_VERSION_DIR'typo3/' $TYPO3_BACKUP_DIR >/dev/null 2>&1
# index.php
/bin/cp -f $TYPO3_CURRENT_VERSION_DIR'index.php' $TYPO3_BACKUP_DIR >/dev/null 2>&1
# localconf.php
/bin/cp -f $TYPO3_CURRENT_VERSION_DIR'typo3conf/localconf.php' $TYPO3_BACKUP_DIR >/dev/null 2>&1
 
#
# Delete old Typo3 version
#
echo "Step 2 -> Move old Typo3 version"
# t3lib
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR't3lib/' $TYPO3_TEMP_DIR >/dev/null 2>&1
# typo3
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'typo3/' $TYPO3_TEMP_DIR >/dev/null 2>&1
# index.php
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'index.php' $TYPO3_TEMP_DIR >/dev/null 2>&1
 
#
# Copy new Typo3 version
#
echo "Step 3 -> Copy new Typo3 version"
/bin/cp -rf $TYPO3_NEW_VERSION_DIR* $TYPO3_CURRENT_VERSION_DIR >/dev/null 2>&1
 
#
# Cleanup temp*
#
echo "Step 4 -> Cleanup temp DIR and temp_CACHED* files"
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'typo3temp/'* $TYPO3_TEMP_DIR >/dev/null 2>&1
mkdir -p $TYPO3_CURRENT_VERSION_DIR'typo3temp/llxml'
/bin/mv -f $TYPO3_CURRENT_VERSION_DIR'typo3conf/temp_CACHED'* $TYPO3_TEMP_DIR >/dev/null 2>&1
 
#
# Fix permissions
#
echo "Step 5 -> Fix permissions"
chown apache:apache -R $TYPO3_CURRENT_VERSION_DIR*
chmod 755 -R $TYPO3_CURRENT_VERSION_DIR*
chmod 755 -R /home/user/*
 
# Done
echo "Step 6 -> Upgrade done"
 
# Success
exit 0
}
 
#
# Main logic
#
if [ -d $TYPO3_NEW_VERSION_DIR ]
then
    if [ -d $TYPO3_CURRENT_VERSION_DIR ]
    then
        if [ $TYPO3_SERVER = dev -a $TYPO3_DIR = typo3_afpa ]
        then
            call_main_process
        elif [ $TYPO3_SERVER = recette -a $TYPO3_DIR = typo3_rec ]
        then
            call_main_process
        elif [ $TYPO3_SERVER = prod -a $TYPO3_DIR = typo3_prod ]
        then
            call_main_process
        else
            echo 'Erreur -> Le serveur de '$TYPO3_SERVER' ne correspond pas au répertoire: '$TYPO3_DIR
            exit 1
        fi
    else
        echo 'Erreur -> La version actuelle de Typo3 '$TYPO3_CURRENT_VERSION_DIR' ne correspond pas'
        exit 1
    fi
else
    echo 'Erreur -> Le package de livraison '$TYPO3_NEW_VERSION_DIR' est inexistant'
    exit 1
fi
 
#
# End
#
Vous devez modifier ce script en fonction de vos environnements: votre répertoire qui contient votre site web Typo3, le chemin des nouvelles sources.

Pour exécuter les scripts sur votre serveur Linux

./update_typo3.sh
./rollback_typo3.sh