97 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
# 2022-09-25 Hyperling
 | 
						|
# Put maintenance needs into a file so the commands do not need remembered.
 | 
						|
 | 
						|
## Setup ##
 | 
						|
 | 
						|
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
 | 
						|
PROG="$(basename -- "${BASH_SOURCE[0]}")"
 | 
						|
source $DIR/.env
 | 
						|
source $DIR/../../source.env
 | 
						|
 | 
						|
## Main ##
 | 
						|
 | 
						|
##### 20250616 - Apt and PHP commands now baked into the Dockerfile!! :D #####
 | 
						|
###echo -e "\n*** APT ***"
 | 
						|
###
 | 
						|
###echo -e "\n`date` - Update Apt Cache"
 | 
						|
###docker exec -it nc-app apt update -y
 | 
						|
###
 | 
						|
###echo -e "\n`date` - Install Additional Software"
 | 
						|
###docker exec -it nc-app apt install -y sudo libmagickcore-6.q16-6-extra htop \
 | 
						|
###	iputils-ping dnsutils vim bzip2 libbz2-dev # php-bz2
 | 
						|
###
 | 
						|
#### 20240130
 | 
						|
#### https://help.nextcloud.com/t/docker-image-setup-warning-missing-bz2-after-update-to-nc-28-0-0/176605
 | 
						|
###echo -e "\n`date` - Compile PHP Modules"
 | 
						|
###docker exec -it nc-app docker-php-ext-install bz2
 | 
						|
 | 
						|
# 2023-12-04 Make sure cron and chmod commands get run.
 | 
						|
echo -e "\n*** CRON ***"
 | 
						|
 | 
						|
echo -e "\n`date` - Run Cron Job"
 | 
						|
$DOCKER_HOME/Config/Nextcloud/cron.sh && echo "Success!"
 | 
						|
 | 
						|
# 2022-10-30 More additions after moving to Nextcloud version 25.
 | 
						|
echo -e "\n*** DATABASE ***"
 | 
						|
 | 
						|
echo -e "\n`date` - Enable Maintenance Mode"
 | 
						|
docker exec -itu www-data nc-app ./occ maintenance:mode --on
 | 
						|
 | 
						|
# 20251004: Disabled since it has not been working.
 | 
						|
# Clear DB errors by allowing the DB to perform any incremental upgrades.
 | 
						|
# https://jira.mariadb.org/browse/MDEV-26342
 | 
						|
#echo -e "\n`date` - mysql_upgrade"
 | 
						|
#time docker exec -it nc-db mysql_upgrade \
 | 
						|
#	-user="root" --password="$MYSQL_ROOT_PASSWORD"
 | 
						|
 | 
						|
echo -e "\n`date` - Enable Dynamic Row Formats"
 | 
						|
docker exec -it nc-db mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" \
 | 
						|
    -e "SELECT CONCAT('ALTER TABLE ', TABLE_NAME,' ROW_FORMAT=DYNAMIC; ') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '$MYSQL_DATABASE' AND ENGINE = 'InnoDB' AND ROW_FORMAT != 'DYNAMIC'; " \
 | 
						|
    -B -N |
 | 
						|
while read -r sql; do
 | 
						|
    echo "SQL being executed: $sql "
 | 
						|
    docker exec nc-db mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" -e "$sql" "$MYSQL_DATABASE";
 | 
						|
    echo " - Done!\ "
 | 
						|
done
 | 
						|
 | 
						|
echo -e "\n`date` - Disable Maintenance Mode"
 | 
						|
docker exec -itu www-data nc-app ./occ maintenance:mode --off
 | 
						|
 | 
						|
echo -e "\n`date` - Add Missing Columns"
 | 
						|
docker exec -itu www-data nc-app ./occ db:add-missing-columns
 | 
						|
 | 
						|
echo -e "\n`date` - Add Missing Indexes"
 | 
						|
docker exec -itu www-data nc-app ./occ db:add-missing-indices
 | 
						|
 | 
						|
echo -e "\n`date` - Add Missing PKs"
 | 
						|
docker exec -itu www-data nc-app ./occ db:add-missing-primary-keys
 | 
						|
 | 
						|
echo -e "\n`date` - Convert Filecache BigInt"
 | 
						|
docker exec -itu www-data nc-app ./occ db:convert-filecache-bigint
 | 
						|
 | 
						|
# 2023-07-02
 | 
						|
echo -e "\n*** FILES ***"
 | 
						|
 | 
						|
# This maybe used to exist, but make sure that Files app is correct.
 | 
						|
echo -e "\n`date` - Scanning All Files"
 | 
						|
docker exec -itu www-data nc-app ./occ files:scan --all
 | 
						|
 | 
						|
# This one takes a while.
 | 
						|
echo -e "\n`date` - Scanning App Data"
 | 
						|
docker exec -itu www-data nc-app ./occ files:scan-app-data
 | 
						|
 | 
						|
# Extras? Have used the commands in the past and may help in the future.
 | 
						|
echo -e "\n`date` - Theme Update"
 | 
						|
docker exec -itu www-data nc-app ./occ maintenance:theme:update
 | 
						|
echo -e "\n`date` - Repair"
 | 
						|
docker exec -itu www-data nc-app ./occ maintenance:repair --include-expensive
 | 
						|
 | 
						|
# May also be useful but do not have much experience with them.
 | 
						|
echo -e "\n`date` - Clean Versions"
 | 
						|
docker exec -itu www-data nc-app ./occ versions:cleanup
 | 
						|
echo -e "\n`date` - Clean Files"
 | 
						|
docker exec -itu www-data nc-app ./occ files:cleanup
 | 
						|
 | 
						|
exit 0
 |