Utilisé notamment pour la migration de sites ecommerce sous magento hébergés par une instance d’ispconfig 3. Seul le fichier de conf local.xml.test est défini à l’avance sur la cible et placé dans un dossier distinct de l’hébergement
#!/bin/bash SRCFS=/var/www/clients/client23/web34/ DESTFS=/var/www/clients/client32/web12 CONFPATH=app/etc/local.xml DESTCONFFILE=$DESTFS/private/local.xml.test SRCDB=c23_prod DESTDB=c32_test SRCURL=www.mondomaine.com DESTURL=test.mondomaine.com DESTOWNER=web12 DESTGRP=client32 rsync -e 'ssh -p 22' -rlptDvz --delete-after --exclude-from=/opt/scripts/web/web-exclude $SRCFS/web root@www-03:$DESTFS mysqldump -c -e --default-character-set=utf8 --single-transaction -u root -pXXXXXXXX $SRCDB | sed "s|$SRCURL|$DESTURL|g" | ssh www-03 mysql -u root -pXXXXXXXX $DESTDB ssh www-03 find $DESTFS/web -type f -exec "sed -i 's|$SRCURL|$DESTURL|g' {} \;" # recopie du fichier de conf destination ssh www-03 cp $DESTCONFFILE $DESTFS/web/$CONFPATH # chown global ssh www-03 chown -R $DESTOWNER.$DESTGRP $DESTFS/web # purge fichiers ssh www-03 rm -rf $DESTFS/web/var/cache/* $DESTFS/web/var/sessions/* # purge mysql ssh www-03 'mysql -u root -pXXXXXXXX '$DESTDB' -e "delete from log_url_info; delete from log_url; delete from log_visitor_info; delete from log_visitor;"'
Les exclusions :
.svn/ *.log *.gz *.zip *.tar session/ cache/ backups/