Skip to content

Instantly share code, notes, and snippets.

@joekolade
Created March 14, 2023 14:46
Show Gist options
  • Select an option

  • Save joekolade/2424d7cb8fa0ae82078c6766baa8d72f to your computer and use it in GitHub Desktop.

Select an option

Save joekolade/2424d7cb8fa0ae82078c6766baa8d72f to your computer and use it in GitHub Desktop.
[Clone TYPO3 instance] #refactor
#!/bin/bash
# typo3 should be in a subfolder e.g. "domain.tld/liveweb"
# in that subfolder there must be a folder named "_backup_DBs"
#
# vars
#
now=$(date +"%Y%m%d")
nows=$(date +"%Y-%m-%d-%H%M")
mainFolder=###sub_folder_of_application###
currentFolder=###current_folder_name_in_subfolder###
newLink=###new_symlink###
newFolder=###current_folder_name_in_subfolder###_version_${now}
backupFolder=_backup_DBs
dbHost=###DB_HOST###
oldDB=###DB_NAME###
oldPass=###DB_PASS###
newDB=###NEW_DB_NAME###
newPass=###NEW_DB_PASS###
#
# START ROUTINE
#
echo 'Duplicating Files... (Live => DEV)'
# create new Version-Folder
rm -Rf ${mainFolder}/${newFolder}
mkdir ${mainFolder}/${newFolder}
# copy current folder via symlink
cp -R ${currentFolder}/* ${mainFolder}/${newFolder}/
cp -R ${currentFolder}/.htaccess ${mainFolder}/${newFolder}/.htaccess
echo 'Done.'
# [opt] backup DEV db
echo 'Backing up live DB... (=> $backupFolder)'
mysqldump --host ${dbHost} -u $oldDB -p${oldPass} $oldDB | gzip > ${mainFolder}/${backupFolder}/${oldDB}_backup_${nows}.sql.gz
echo 'DB backup done.'
echo ' '
# clean dev DB
echo 'Cleaning DEV-DB...'
mysql --host ${dbHost} -Nse 'show tables' ${newDB} -u${newDB} -p${newPass} | while read table; do mysql --host ${dbHost} -e "truncate table $table" ${newDB} -u${newDB} -p${newPass} ; done
echo 'Done./n'
# clone DB live => dev
echo 'Pushing Live-DB to Dev-DB'
gunzip < ${mainFolder}/${backupFolder}/${oldDB}_backup_${nows}.sql.gz | mysql --default-character-set=utf8 --host ${dbHost} -u ${newDB} -p${newPass} ${newDB}
echo 'Done.'
# set symlinks new
echo 'Setting new symlink'
rm -f ${newLink}
ln -s ${mainFolder}/${newFolder} ${newLink}
echo 'Done.'
# empty cache and temp
# [opt] and be sessions
echo 'Clearing Caches of DEV-System'
rm -Rf ${mainFolder}/${newFolder}/typo3temp/*
echo 'Done.'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment