Welcome to mirror list, hosted at ThFree Co, Russian Federation.

nc-database.sh « nextcloudpi-config.d « etc - github.com/nextcloud/nextcloudpi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e8e7a923dd902dc928d6faefe72050d2186c1cc2 (plain)
1
2
3
4
5
6
7
8
9
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
79
80
81
82
83
84
85
86
87
88
#!/bin/bash

# Data dir configuration script for NextCloudPi
# Tested with 2017-03-02-raspbian-jessie-lite.img
#
# Copyleft 2017 by Ignacio Nunez Hernanz <nacho _a_t_ ownyourbits _d_o_t_ com>
# GPL licensed (see end of file) * Use at your own risk!
#
# Usage:
# 
#   ./installer.sh nc-database.sh <IP> (<img>)
#
# See installer.sh instructions for details
#
# More at https://ownyourbits.com/
#

DBDIR_=/media/USBdrive/ncdatabase
DESCRIPTION="Move your database to a new location, like a USB drive"

show_info()
{
  whiptail --yesno \
           --backtitle "NextCloudPi configuration" \
           --title "Info" \
"Note that non Unix filesystems such as NTFS are not supported
because they do not provide a compatible user/permissions system

You need to use a USB drive that is permanently on and is responsive 
or the database will fail.

** If it ever fails with a white page, move the database back to the SD **
" \
  20 90
}

configure()
{
  local SRCDIR=$( grep datadir /etc/mysql/my.cnf | cut -d= -f2 )
  [ -d $SRCDIR ] || { echo -e "database directory $SRCDIR not found"; return 1; }

  [ -d "$DBDIR_" ] && {
    [[ $( find "$DBDIR_" -maxdepth 0 -empty | wc -l ) == 0 ]] && {
      echo "$DBDIR_ is not empty"
      return 1
    }
    rmdir "$DBDIR_" 
  }

  local BASEDIR=$( dirname "$DBDIR_" )
  mkdir -p "$BASEDIR"

  grep -q ext <( stat -fc%T $BASEDIR ) || { echo -e "Only ext filesystems can hold the database"; return 1; }
  
  sudo -u mysql test -x $BASEDIR || { echo -e "ERROR: the user mysql does not have access permissions over $BASEDIR"; return 1; }

  [[ $( stat -fc%d / ) == $( stat -fc%d $BASEDIR ) ]] && \
    echo -e "INFO: moving database to another place in the same SD card\nIf you want to use an external mount, make sure it is properly set up"

  service apache2  stop
  service mysql    stop

  mv $SRCDIR "$DBDIR_" || return 1
  sed -i "s|^datadir.*|datadir = $DBDIR_|" /etc/mysql/my.cnf

  service mysql start && service apache2 start
}

install(){ :; }
cleanup(){ :; }

# License
#
# This script is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This script is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this script; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA  02111-1307  USA