Cloud ServicesNextcloud
Nextcloud OCC Commands
Comprehensive guide to Nextcloud OCC command-line interface
Nextcloud OCC Command Cheat Sheet
The occ (ownCloud/Nextcloud Console) tool is the command-line interface for administering Nextcloud. Run commands as the webserver user (usually www-data):
sudo -u www-data php occ <command>All commands should be run from the Nextcloud installation directory (usually /var/www/html or /var/www/nextcloud).
Maintenance Commands
Maintenance Mode
# Enable maintenance mode
sudo -u www-data php occ maintenance:mode --on
# Disable maintenance mode
sudo -u www-data php occ maintenance:mode --off
# Check maintenance mode status
sudo -u www-data php occ maintenance:modeSystem Status
# Show server status
sudo -u www-data php occ status
# Check system information
sudo -u www-data php occ system:cron
# Update data fingerprint (after manual file changes)
sudo -u www-data php occ maintenance:data-fingerprintRepair Commands
# Run all repair steps
sudo -u www-data php occ maintenance:repair
# List available repair steps
sudo -u www-data php occ maintenance:repair --list
# Run specific repair step
sudo -u www-data php occ maintenance:repair --include-expensive
# Repair file cache
sudo -u www-data php occ files:cleanupDatabase Repairs
# Add missing database indices
sudo -u www-data php occ db:add-missing-indices
# Add missing database columns
sudo -u www-data php occ db:add-missing-columns
# Add missing primary keys
sudo -u www-data php occ db:add-missing-primary-keys
# Convert file cache to big int
sudo -u www-data php occ db:convert-filecache-bigintFile Operations
# Scan all files for all users
sudo -u www-data php occ files:scan --all
# Scan files for specific user
sudo -u www-data php occ files:scan username
# Scan with verbose output
sudo -u www-data php occ files:scan --all --verbose
# Clean up file cache
sudo -u www-data php occ files:cleanupData Directory
# Move data directory
sudo -u www-data php occ files:move-home username new-location
# Transfer file ownership
sudo -u www-data php occ files:transfer-ownership source-user target-userUser Management
User Operations
# List all users
sudo -u www-data php occ user:list
# Show user details
sudo -u www-data php occ user:info username
# Add new user
sudo -u www-data php occ user:add username
# Delete user
sudo -u www-data php occ user:delete username
# Enable user
sudo -u www-data php occ user:enable username
# Disable user
sudo -u www-data php occ user:disable usernamePassword Management
# Reset user password
sudo -u www-data php occ user:resetpassword username
# Set user password (interactive)
sudo -u www-data php occ user:resetpassword --password-from-env username
# Generate user report
sudo -u www-data php occ user:reportGroup Management
# List all groups
sudo -u www-data php occ group:list
# Add user to group
sudo -u www-data php occ group:adduser groupname username
# Remove user from group
sudo -u www-data php occ group:removeuser groupname username
# List group members
sudo -u www-data php occ group:list-members groupnameApp Management
App Operations
# List all apps
sudo -u www-data php occ app:list
# List enabled apps only
sudo -u www-data php occ app:list --enabled
# List disabled apps only
sudo -u www-data php occ app:list --disabled
# Enable app
sudo -u www-data php occ app:enable contacts
# Disable app
sudo -u www-data php occ app:disable calendar
# Update all apps
sudo -u www-data php occ app:update --all
# Update specific app
sudo -u www-data php occ app:update contactsApp Information
# Get app information
sudo -u www-data php occ app:info contacts
# Check app dependencies
sudo -u www-data php occ app:check-code contactsConfiguration Management
System Configuration
# List all system config
sudo -u www-data php occ config:list system
# Get specific config value
sudo -u www-data php occ config:system:get trusted_domains
# Set config value
sudo -u www-data php occ config:system:set trusted_domains 2 --value=nextcloud.example.com
# Delete config value
sudo -u www-data php occ config:system:delete trusted_domains 2
# Set config with type
sudo -u www-data php occ config:system:set debug --type=boolean --value=trueApp Configuration
# List app config
sudo -u www-data php occ config:list app
# Get app config value
sudo -u www-data php occ config:app:get core backgroundjobs_mode
# Set app config value
sudo -u www-data php occ config:app:set core backgroundjobs_mode --value=cron
# Delete app config
sudo -u www-data php occ config:app:delete core some_settingEncryption Management
Always backup your data and encryption keys before making encryption changes. Encryption operations are irreversible.
Encryption Status
# Show encryption status
sudo -u www-data php occ encryption:status
# List encryption modules
sudo -u www-data php occ encryption:list-modules
# Show encryption module info
sudo -u www-data php occ encryption:show-key-storage-rootEnable/Disable Encryption
# Enable encryption system
sudo -u www-data php occ encryption:enable
# Disable encryption system
sudo -u www-data php occ encryption:disable
# Set default encryption module
sudo -u www-data php occ encryption:set-default-module OC_DEFAULT_MODULEKey Management
# Initialize encryption
sudo -u www-data php occ encryption:initialize
# Enable master key mode
sudo -u www-data php occ encryption:enable-master-key
# Enable recovery key
sudo -u www-data php occ encryption:enable-recovery
# Disable recovery key
sudo -u www-data php occ encryption:disable-recovery
# Change key storage location
sudo -u www-data php occ encryption:change-key-storage-root /new/key/locationEncrypt/Decrypt Operations
# Encrypt all files (can take very long)
sudo -u www-data php occ encryption:encrypt-all
# Decrypt all files
sudo -u www-data php occ encryption:decrypt-all
# Recover user files
sudo -u www-data php occ encryption:recover usernameBackground Jobs
Cron Management
# Run background jobs manually
sudo -u www-data php occ background:cron
# Set background job mode
sudo -u www-data php occ background:ajax # Ajax mode
sudo -u www-data php occ background:webcron # Webcron mode
sudo -u www-data php occ background:cron # System cron modeJob Information
# List background jobs
sudo -u www-data php occ background:job:list
# Execute specific job
sudo -u www-data php occ background:job:execute job-idUpgrade and Updates
Upgrade Operations
# Check for updates
sudo -u www-data php occ update:check
# Perform upgrade (after updating files)
sudo -u www-data php occ upgrade
# Skip specific migration step
sudo -u www-data php occ upgrade --skip-migration-test
# Disable maintenance mode after upgrade
sudo -u www-data php occ maintenance:mode --offSecurity and Integrity
Security Scans
# Run security scan
sudo -u www-data php occ security:certificates
# Check code integrity
sudo -u www-data php occ integrity:check-core
# Check app integrity
sudo -u www-data php occ integrity:check-app contactsTwo-Factor Authentication
# List 2FA providers
sudo -u www-data php occ twofactorauth:list
# Enable 2FA for user
sudo -u www-data php occ twofactorauth:enable username totp
# Disable 2FA for user
sudo -u www-data php occ twofactorauth:disable username totpEmergency Recovery
Use these commands only in emergency situations when normal access is not possible.
Stuck in Maintenance Mode
If Nextcloud is stuck in maintenance mode and OCC is not responding:
# Edit config.php directly
sudo nano /var/www/html/config/config.php
# Change 'maintenance' => true to 'maintenance' => false
# Or use sed
sudo sed -i "s/'maintenance' => true/'maintenance' => false/" /var/www/html/config/config.phpReset Admin Password
# Reset admin password
sudo -u www-data php occ user:resetpassword admin
# Create new admin user if needed
sudo -u www-data php occ user:add admin --group=adminDatabase Recovery
# Repair database
sudo -u www-data php occ maintenance:repair
# Fix database issues
sudo -u www-data php occ db:add-missing-indices
sudo -u www-data php occ db:add-missing-columns
sudo -u www-data php occ db:add-missing-primary-keysFile System Recovery
# Rescan all files
sudo -u www-data php occ files:scan --all
# Clean up file locks
sudo -u www-data php occ maintenance:repair --include-expensive
# Fix file permissions (run as root)
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
sudo chmod -R 770 /var/www/html/dataUseful Tips
Getting Help
# List all available commands
sudo -u www-data php occ list
# Get help for specific command
sudo -u www-data php occ user:add --help
# Show command usage examples
sudo -u www-data php occ help user:addAutomation and Scripting
# Run commands in batch mode (non-interactive)
sudo -u www-data php occ user:add newuser --password-from-env
# Set environment variable for password
export OC_PASS="secure-password"
sudo -u www-data php occ user:add newuser --password-from-env
# Use in scripts with error handling
if sudo -u www-data php occ maintenance:mode --on; then
echo "Maintenance mode enabled"
else
echo "Failed to enable maintenance mode"
exit 1
fiPerformance Monitoring
# Check system status
sudo -u www-data php occ status
# Monitor background jobs
sudo -u www-data php occ background:job:list
# Check database performance
sudo -u www-data php occ db:add-missing-indices --dry-runBest Practices
- Always run as web server user (
www-data,apache, ornginx) - Backup before major operations (especially encryption changes)
- Test commands in staging before running in production
- Monitor logs after running maintenance commands
- Use maintenance mode during major operations
- Keep regular backups of config and data directories
For more detailed information about specific commands, use the --help flag or refer to the official Nextcloud documentation.