diff options
author | nachoparker <nacho@ownyourbits.com> | 2017-04-11 22:49:18 +0300 |
---|---|---|
committer | nachoparker <nacho@ownyourbits.com> | 2017-04-12 08:17:02 +0300 |
commit | 47f4c75391bc0ef8c687958f050ddc117613773a (patch) | |
tree | 86130ef49951a57a54e8032b5cb06a17ef5e63a6 | |
parent | 714f6b2a79576d2c9f967d3cab4d9311fe889d1a (diff) |
NFS and nc-scanv0.6.0
-rwxr-xr-x | etc/nextcloudpi-config.d/NFS.sh | 118 | ||||
-rwxr-xr-x | etc/nextcloudpi-config.d/nc-scan-auto.sh | 83 | ||||
-rwxr-xr-x | etc/nextcloudpi-config.d/nc-scan.sh | 50 |
3 files changed, 251 insertions, 0 deletions
diff --git a/etc/nextcloudpi-config.d/NFS.sh b/etc/nextcloudpi-config.d/NFS.sh new file mode 100755 index 00000000..2992dfef --- /dev/null +++ b/etc/nextcloudpi-config.d/NFS.sh @@ -0,0 +1,118 @@ +#!/bin/bash + +# NFS server for Raspbian +# 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 NFS.sh <IP> (<img>) +# +# See installer.sh instructions for details +# More at: https://ownyourbits.com +# + +DIR_=/media/USBdrive/ncdata/admin/files +SUBNET_=192.168.1.0/24 +USER_=www-data +GROUP_=www-data +DESCRIPTION="NFS network file system server (for Linux LAN)" + +install() +{ + apt-get update + apt-get install --no-install-recommends -y nfs-kernel-server + systemctl disable nfs-kernel-server +} + +configure() +{ + # INFO + ################################ + whiptail --msgbox \ + --backtitle "NextCloudPi configuration" \ + --title "Instructions for external synchronization" \ +"If we intend to modify the data folder through NFS, +then we have to synchronize NextCloud to make it aware of the changes. \n +This can be done manually or automatically using 'nc-scan' and 'nc-scan-auto' +from 'nextcloudpi-config'" \ + 20 90 + + # CHECKS + ################################ + [ -d "$DIR_" ] || { echo -e "INFO: directory $DIR_ does not exist. Creating"; mkdir -p "$DIR_"; } + [[ $( stat -fc%d / ) == $( stat -fc%d $DIR_ ) ]] && \ + echo -e "INFO: mounting a in the SD card\nIf you want to use an external mount, make sure it is properly set up" + + # CONFIG + ################################ + cat > /etc/exports <<EOF +$DIR_ $SUBNET_(rw,sync,all_squash,anonuid=$(id -u $USER_),anongid=$(id -g $GROUP_),no_subtree_check) +EOF + + cat > /etc/systemd/system/nfs-common.services <<EOF +[Unit] +Description=NFS Common daemons +Wants=remote-fs-pre.target +DefaultDependencies=no + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/etc/init.d/nfs-common start +ExecStop=/etc/init.d/nfs-common stop + +[Install] +WantedBy=sysinit.target +EOF + + cat > /etc/systemd/system/rpcbind.service <<EOF +[Unit] +Description=RPC bind portmap service +After=systemd-tmpfiles-setup.service +Wants=remote-fs-pre.target +Before=remote-fs-pre.target +DefaultDependencies=no + +[Service] +ExecStart=/sbin/rpcbind -f -w +KillMode=process +Restart=on-failure + +[Install] +WantedBy=sysinit.target +Alias=portmap +EOF + + systemctl enable rpcbind + systemctl enable nfs-kernel-server + service nfs-kernel-server start +} + +cleanup() +{ + apt-get autoremove -y + apt-get clean + rm /var/lib/apt/lists/* -r + rm -f /home/pi/.bash_history + systemctl disable ssh +} + +# 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 diff --git a/etc/nextcloudpi-config.d/nc-scan-auto.sh b/etc/nextcloudpi-config.d/nc-scan-auto.sh new file mode 100755 index 00000000..0f495959 --- /dev/null +++ b/etc/nextcloudpi-config.d/nc-scan-auto.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +# Periodically synchronize NextCloud for externally modified files +# 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: +# +# ./nc-scan-auto.sh +# +# See installer.sh instructions for details +# More at: https://ownyourbits.com +# + +SCANINTERVAL_=60 +DESCRIPTION="Periodically scan NC for externally modified files" + +configure() +{ + whiptail --msgbox \ + --backtitle "NextCloudPi configuration" \ + --title "Instructions for auto synchronization" \ +"Set the time in minutes in SCANINTERVAL. \n +>>> If there are too many files this can greatly affect performance. <<< \n +SCANINTERVAL=0 will disable periodic synchronization." \ + 20 90 + + [[ $SCANINTERVAL_ == 0 ]] && { + systemctl stop nc-scan.timer + systemctl disable nc-scan.timer + return 0 + } + + cat > /etc/systemd/system/nc-scan.timer <<EOF + [Unit] + Description=Timer to scan NC for externally modified files + + [Timer] + OnBootSec=${SCANINTERVAL_}min + OnUnitActiveSec=${SCANINTERVAL_}min + Unit=nc-scan.service + + [Install] + WantedBy=timers.target +EOF + cat > /etc/systemd/system/nc-scan.service <<EOF +[Unit] +Description=Scan NC for externally modified files + +[Service] +Type=simple +ExecStart=/usr/local/bin/ncp-scan + +[Install] +WantedBy=default.target +EOF + systemctl daemon-reload + systemctl enable nc-scan.timer + systemctl start nc-scan.timer +} + +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 + diff --git a/etc/nextcloudpi-config.d/nc-scan.sh b/etc/nextcloudpi-config.d/nc-scan.sh new file mode 100755 index 00000000..e1bf0f42 --- /dev/null +++ b/etc/nextcloudpi-config.d/nc-scan.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# Synchronize NextCloud for externally modified files +# 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: +# +# ./nc-scan.sh +# +# See installer.sh instructions for details +# More at: https://ownyourbits.com +# + +DESCRIPTION="Scan NC for externally modified files" + +install() +{ + cat > /usr/local/bin/ncp-scan <<EOF +cd /var/www/nextcloud +sudo -u www-data php occ files:scan --all +EOF + chmod +x /usr/local/bin/ncp-scan +} + +configure() +{ + /usr/local/bin/ncp-scan +} + +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 |