#!/bin/bash # 2023-08-25 Hyperling # Put the cron command in a script as well as other automation. # This should be added to root's crontab with the full path, such as: # */5 * * * * /opt/Docker/Config/Nextcloud/cron.ksh # Check if a job is already going. DIR="$(dirname -- "${BASH_SOURCE[0]}")" PROG="$(basename -- "${BASH_SOURCE[0]}")" RUNNING=`ps -ef | grep $PROG | grep -v grep | grep -v $$ | grep -v "sh -c" | wc -l` if (( $RUNNING > 0 )); then exit $RUNNING fi function usage() { cat <<- EOF Script to help with scheduling Nextcloud's cron requirements. Usage: $PROG [-h|-v] -h) Display the usage and help text. -v) Pass a verbose request to cron.php. EOF exit $1 } verbose="" case "$1" in "") ;; "-h") usage 0 ;; "-v") verbose="-v" ;; *) echo -e "ERROR: Unknown parameter '$1'. Exiting.\n" usage 1 ;; esac # Keep ownership correct and apps up to date. Also exists in fixes.sh. sh -c "docker exec -i nc-app chown -Rc www-data:www-data ." # No longer update apps in advance of NC updates, allow the upgrade process to do it. #sh -c "docker exec -itu www-data nc-app ./occ app:update --all" # Prepare the variables being passed to the execution command. if [[ -f $DIR/.env ]]; then source $DIR/.env else PHP_MEMORY_LIMIT=256M fi # Main part of what would go in the crontab. sh -c " docker exec nc-app \ sudo -u www-data \ php \ -d apc.enable_cli=1 \ -d memory_limit=$PHP_MEMORY_LIMIT \ -f cron.php $verbose \ " exit 0