Linux üzerinde host ettiğim prestashop sitesinin zaman zaman klonunu alıp test sitesi olarak kullanmam gerekiyordu. Bu ihtiyacımdan ötürü bir script hazırladım. Bu script canlı sitenin veritabanı ve dosyalarını test sitesinin dizin ve veritabanına klonluyor ve gerek dosyalarda gerekse veritabanında değiştirilmesi gereken ifadeleri değiştiriyor. Böylece canlı sitenizin birkaç dakika içinde klonlanmış halini test sitesine dönüştürebiliyorsunuz. Scriptin ilk satırlarında test ve canlı site için birkaç değeri elle girmeniz gerek. Yazının devamındaki scripti dosyaismi.sh olarak kaydettikten sonra konsolda
#chmod +x dosyaismi.sh
komutunu çalıştırınız.
#Bu script prestashop canli sitenin klonunu alarak test sitesinin olusturulmasini saglar. #Script hicbir sekilde apache, php, mysql yapilandirmanizi degistirmez. Tek yaptigi dosya kopyalamak ve db yedek alip yedekten donmedir. #Scripti yazan : Onur AYDIN - [email protected] ######################################################################################### ################ ASAGIDAKI CANLI VE TEST SITE BILGILERINI GIRINIZ ##################### ###Canli Site Bilgileri CANLISITEURL= ## ORNEK : CANLISITEURL=satis.domain.com CANLISITEPATH= ## ORNEK : CANLISITEPATH=/var/www/satis CANLISITEDBSUNUCU= ## ORNEK : CANLISITEDBSUNUCU=localhost CANLISITEDBADI= ## ORNEK : CANLISITEDBADI=satis CANLISITEDBKULLANICI= ## ORNEK : CANLISITEDBKULLANICI=root CANLISITEDBSIFRE= ## ORNEK : CANLISITEDBSIFRE=123456 ###Test Site Bilgileri TESTSITEURL= ## ORNEK : TESTSITEURL=satis-test.domain.com TESTSITEPATH= ## ORNEK : TESTSITEPATH=/var/www/satis-test TESTSITEDBSUNUCU= ## ORNEK : TESTSITEDBSUNUCU=localhost TESTSITEDBADI= ## ORNEK : TESTSITEDBADI=satis_test TESTSITEDBKULLANICI= ## ORNEK : TESTSITEDBKULLANICI=root TESTSITEDBSIFRE= ## ORNEK : TESTSITEDBSIFRE=123456 ######################################################################################### ########## DIKKAT BU SATIRDAN ASAGIDAKI SATIRLARI DEGISTIRMEYINIZ #################### ##########DOSYA ISLEMLERI########### ###Test site dizinini temizleyelim echo "Test Site dizinindeki tum dosyalar siliniyor" rm -R $TESTSITEPATH/* ###Canli site dosyalarinin dizinine gecelim cd $CANLISITEPATH ###Canli sitenin tum dosyalarini test sitesinin dizinine kopyalayalim echo "Canli Site dosyalari Test Site dizinine kopyalaniyor" cp -R * $TESTSITEPATH ###Test Site dizinindeki dosya ve dizinlerin yetkileri tanilaniyor echo "Test site dizini yetkileri 777 olarak set ediliyor" chmod -R 777 $TESTSITEPATH/config chmod -R 777 $TESTSITEPATH/cache chmod -R 777 $TESTSITEPATH/log chmod -R 777 $TESTSITEPATH/img chmod -R 777 $TESTSITEPATH/mails chmod -R 777 $TESTSITEPATH/modules chmod -R 777 $TESTSITEPATH/themes/default/lang chmod -R 777 $TESTSITEPATH/themes/default/pdf/lang chmod -R 777 $TESTSITEPATH/themes/default/cache chmod -R 777 $TESTSITEPATH/translations chmod -R 777 $TESTSITEPATH/upload chmod -R 777 $TESTSITEPATH/download chmod -R 777 $TESTSITEPATH/sitemap.xml ###Test sitesinin setting.inc.php dosyasinda canli sitemin db bilgileri var. Onu degistirelim. echo "Test Site setting.inc.php dosyasindaki degerler degistiriliyor" sed -i s/$CANLISITEDBSUNUCU/$TESTSITEDBSUNUCU/g $TESTSITEPATH/config/settings.inc.php sed -i s/$CANLISITEDBADI/$TESTSITEDBADI/g $TESTSITEPATH/config/settings.inc.php sed -i s/$CANLISITEDBKULLANICI/$TESTSITEDBKULLANICI/g $TESTSITEPATH/config/settings.inc.php sed -i s/$CANLISITEDBSIFRE/$TESTSITEDBSIFRE/g $TESTSITEPATH/config/settings.inc.php ##########VERITABANI ISLEMLERI########### ###Canli sitenin veritabanini export edelim cd /tmp echo "Canli site veritabani export ediliyor" mysqldump -u $CANLISITEDBKULLANICI -p$CANLISITEDBSIFRE $CANLISITEDBADI > tempdb.sql ###Export ettigimiz sql dosyasinin icinde gecen canli site URL i degistirelim echo "Export edilen veritabani dosyasinda site url degeri degistiriliyor" sed -i s/$CANLISITEURL/$TESTSITEURL/g tempdb.sql ###Export ettigimiz sql dosyasini test sitenin veritabanina geri yukleyelim echo "Canli sitenin veritabani Test Sitenin veritabanina yaziliyor" mysql -u $TESTSITEDBKULLANICI -p$TESTSITEDBSIFRE $TESTSITEDBADI < tempdb.sql ### tempdb.sql dosyasini silelim echo "/tmp dizinindeki tempdb.sql dosyasi siliniyor" rm /tmp/tempdb.sql echo "Islem tamamlandi" ###BITTI