Skip to content

Instantly share code, notes, and snippets.

@WaaromZoMoeilijk
Created May 11, 2016 14:25
Show Gist options
  • Save WaaromZoMoeilijk/69cb27b1c444f48dbb9b2bd09ca61eab to your computer and use it in GitHub Desktop.
Save WaaromZoMoeilijk/69cb27b1c444f48dbb9b2bd09ca61eab to your computer and use it in GitHub Desktop.
#!/bin/bash
#
## Tech and Me ## - ©2016, https://www.techandme.se/
#
# Tested on Ubuntu Server 14.04.
#
SCRIPTS=/var/scripts
HTML=/var/www
OCPATH=$HTML/owncloud
DATA=$OCPATH/data
SECURE="$SCRIPTS/setup_secure_permissions_owncloud.sh"
OCVERSION=9.0.2
THEME_NAME=""
UNPACK="owncloud-$OCVERSION.tar.bz2"
REPO="https://raw.githubusercontent.com/ezraholm50/BerryCloud/master"
# Must be root
[[ $(id -u) -eq 0 ]] || { echo "Must be root to run script, in Ubuntu type: sudo -i"; exit 1; }
# Set secure permissions
if [ -f $SECURE ];
then
echo "Script exists"
else
mkdir -p $SCRIPTS
wget $REPO/setup_secure_permissions_owncloud.sh -P $SCRIPTS
fi
# System Upgrade
sudo apt-get update
sudo aptitude full-upgrade -y
# Enable maintenance mode
sudo -u www-data php $OCPATH/occ maintenance:mode --on
# Backup data
apt-get install rsync -y
rsync -Aaxv $DATA $HTML
rsync -Aax $OCPATH/config $HTML
rsync -Aax $OCPATH/themes $HTML
rsync -Aax $OCPATH/apps $HTML
if [[ $? > 0 ]]
then
echo "Backup was not OK. Please check $HTML and see if the folders are backed up properly"
exit
else
echo -e "\e[32m"
echo "Backup OK!"
echo -e "\e[0m"
fi
wget https://download.owncloud.org/community/owncloud-$OCVERSION.tar.bz2 -P $HTML
if [ -f $HTML/owncloud-$OCVERSION.tar.bz2 ];
then
echo "$HTML/owncloud-latest.tar.bz2 exists"
else
echo "Aborting, something went wrong with the download"
exit 1
fi
if [ -d $OCPATH/config/ ]; then
echo "config/ exists"
else
echo "Something went wrong with backing up your old ownCloud instance, please check in $HTML if data/ and config/ folders exist."
exit 1
fi
if [ -d $OCPATH/themes/ ]; then
echo "themes/ exists"
else
echo "Something went wrong with backing up your old ownCloud instance, please check in $HTML if data/ and config/ folders exist."
exit 1
fi
if [ -d $OCPATH/apps/ ]; then
echo "apps/ exists"
else
echo "Something went wrong with backing up your old ownCloud instance, please check in $HTML if data/ and config/ folders exist."
exit 1
fi
if [ -d $DATA/ ]; then
echo "data/ exists" && sleep 2
rm -rf $OCPATH
tar -xjf $HTML/$UNPACK -C $HTML
rm $HTML/owncloud-latest.tar.bz2
cp -R $HTML/themes $OCPATH/ && rm -rf $HTML/themes
cp -Rv $HTML/data $DATA && rm -rf $HTML/data
cp -R $HTML/config $OCPATH/ && rm -rf $HTML/config
cp -R $HTML/apps $OCPATH/ && rm -rf $HTML/apps
bash $SECURE
sudo -u www-data php $OCPATH/occ maintenance:mode --off
sudo -u www-data php $OCPATH/occ upgrade
else
echo "Something went wrong with backing up your old ownCloud instance, please check in $HTML if data/ and config/ folders exist."
exit 1
fi
# Enable Apps
sudo -u www-data php $OCPATH/occ app:enable calendar
sudo -u www-data php $OCPATH/occ app:enable contacts
sudo -u www-data php $OCPATH/occ app:enable documents
sudo -u www-data php $OCPATH/occ app:enable external
# Second run (to make sure everything is updated, somtimes apps needs a second run)
sudo -u www-data php $OCPATH/occ upgrade
# Enable Apps
sudo -u www-data php $OCPATH/occ app:enable calendar
sudo -u www-data php $OCPATH/occ app:enable contacts
sudo -u www-data php $OCPATH/occ app:enable documents
sudo -u www-data php $OCPATH/occ app:enable external
# Disable maintenance mode
sudo -u www-data php $OCPATH/occ maintenance:mode --off
# Increase max filesize (expects that changes are made in /etc/php5/apache2/php.ini)
# Here is a guide: https://www.techandme.se/increase-max-file-size/
VALUE="# php_value upload_max_filesize 513M"
if grep -Fxq "$VALUE" $OCPATH/.htaccess
then
echo "Value correct"
else
sed -i 's/ php_value upload_max_filesize 513M/# php_value upload_max_filesize 513M/g' $OCPATH/.htaccess
sed -i 's/ php_value post_max_size 513M/# php_value post_max_size 513M/g' $OCPATH/.htaccess
sed -i 's/ php_value memory_limit 512M/# php_value memory_limit 512M/g' $OCPATH/.htaccess
fi
# Set $THEME_NAME
VALUE2="$THEME_NAME"
if grep -Fxq "$VALUE2" $OCPATH/config/config.php
then
echo "Theme correct"
else
sed -i "s|'theme' => '',|'theme' => '$THEME_NAME',|g" $OCPATH/config/config.php
echo "Theme set"
fi
# Repair
sudo -u www-data php $OCPATH/occ maintenance:repair
# Cleanup un-used packages
sudo apt-get autoremove -y
sudo apt-get autoclean
# Write to log
touch /var/log/cronjobs_success.log
echo "OWNCLOUD UPDATE success-$(date +"%Y%m%d")" >> /var/log/cronjobs_success.log
echo
echo ownCloud version:
sudo -u www-data php $OCPATH/occ status
echo
echo
sleep 3
# Set secure permissions again
bash $SECURE
## Un-hash this if you want the system to reboot
sudo reboot
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment