Если Nextcloud не видит файлы, которые вы загрузили прямо на сервер через SSH, rsync, FTP, WebDAV-монтирование или вручную скопировали в каталог пользователя, это почти всегда не поломка. Nextcloud просто не узнал о новых файлах. Он хранит список файлов в базе данных, а не каждый раз перечитывает весь диск при открытии веб-интерфейса.
Для таких случаев есть штатная консольная команда occ files:scan. Она проходит по файловому хранилищу, находит новые файлы, обновляет файловый кэш и возвращает папки в интерфейс. Команда актуальна для современных версий Nextcloud и по-прежнему описана в официальной документации Nextcloud по occ command.
Когда нужен files:scan
Пересканирование нужно не каждый день. Обычно его запускают после действий в обход самого Nextcloud. Например, когда администратор скопировал архив данных прямо в папку пользователя, восстановил файлы из резервной копии или перенёс хранилище на другой диск.
- файлы есть на диске, но их нет в веб-интерфейсе Nextcloud;
- папка отображается пустой, хотя через SSH внутри есть файлы;
- размеры папок выглядят неправильно;
- после миграции или восстановления из бэкапа часть данных не появилась у пользователя;
- внешнее хранилище или каталог пользователя меняли вручную на сервере.
Если пользователь загрузил файл через обычный веб-интерфейс Nextcloud, Desktop Client или мобильное приложение, запускать files:scan не нужно. В этом случае Nextcloud сам обновляет базу.
Перед запуском: где лежит occ и от какого пользователя его выполнять
Файл occ лежит в корне установленного Nextcloud. В классической установке это часто /var/www/nextcloud, но путь может отличаться: /var/www/html/nextcloud, /var/www/cloud, каталог панели хостинга или bind mount внутри контейнера.
Запускать occ нужно от пользователя веб-сервера. На Ubuntu и Debian с Nginx/Apache это чаще всего www-data. На других сборках пользователь может называться иначе. Если команда запускается от root без sudo -u www-data, Nextcloud может ругаться на права или создать файлы с неправильным владельцем.
cd /var/www/nextcloud sudo -u www-data php occ status
Команда occ status безопасна: она просто покажет состояние установки. Если она отработала, значит вы находитесь в правильном каталоге и PHP запускает консоль Nextcloud.
Пересканировать файлы всех пользователей
Полное сканирование удобно после миграции, восстановления из резервной копии или массового копирования данных. Но на большом хранилище оно может идти долго, иногда часы. Лучше запускать его в screen или tmux, чтобы команда не оборвалась при разрыве SSH-сессии.
cd /var/www/nextcloud sudo -u www-data php occ files:scan --all
Во время работы Nextcloud будет выводить найденные каталоги и статистику. Если файлов много, не пугайтесь долгой паузы на больших папках. Это нормально, особенно на медленных дисках, сетевых хранилищах и старых серверах.
Пересканировать файлы одного пользователя
Если проблема только у одного аккаунта, не нужно гонять сканирование по всему облаку. Укажите имя пользователя Nextcloud. Это быстрее и аккуратнее.
cd /var/www/nextcloud sudo -u www-data php occ files:scan username
Замените username на реальный логин пользователя в Nextcloud. Это именно внутреннее имя пользователя, а не обязательно его отображаемое имя в интерфейсе.
Пересканировать отдельную папку
Когда вы точно знаете, где появились новые данные, можно ограничиться одной папкой. Это самый бережный вариант для крупных инсталляций: меньше нагрузка на диск, базу и PHP-процесс.
cd /var/www/nextcloud sudo -u www-data php occ files:scan --path="username/files/Documents"
Путь в параметре --path указывается относительно файлового пространства Nextcloud. Обычно схема такая: пользователь/files/папка. Не нужно подставлять полный системный путь вроде /var/www/nextcloud/data/username/files/Documents.
Если Nextcloud установлен в Docker или Snap
В Docker-компоновках команда запускается внутри контейнера с Nextcloud. Имя контейнера нужно посмотреть в своей системе. Часто это nextcloud, но в docker compose оно может быть другим.
docker exec -u www-data -it nextcloud php occ files:scan --all
Для Snap-установки обычно используют обёртку nextcloud.occ. Там не нужно переходить в каталог /var/www/nextcloud.
sudo nextcloud.occ files:scan --all
Если у вас Nextcloud AIO, путь и пользователь могут отличаться. В таком случае сначала посмотрите документацию именно вашей сборки или список контейнеров через docker ps.
Как понять, что сканирование помогло
После завершения команды откройте веб-интерфейс Nextcloud и проверьте проблемную папку. Иногда браузер держит старую страницу в кэше, поэтому обновите вкладку или откройте папку заново.
- файлы появились в нужной папке;
- размер папки стал похож на реальный;
- поиск Nextcloud начал находить новые документы;
- в выводе команды нет ошибок доступа к файлам;
- в логах Nextcloud нет свежих ошибок по этой папке.
Если файлы всё равно не появились, проверьте права на уровне Linux. Владелец и группа файлов должны позволять веб-серверу читать эти данные. Для классической установки это часто www-data:www-data, но слепо выполнять chown -R по всему хранилищу не стоит. Сначала проверьте конкретную проблемную папку.
ls -la /var/www/nextcloud/data/username/files/
Типовые ошибки
Could not open input file: occ
Вы запускаете команду не из каталога Nextcloud. Перейдите в папку, где лежит файл occ, или укажите полный путь.
sudo -u www-data php /var/www/nextcloud/occ files:scan --all
Console has to be executed with the user that owns the file config/config.php
Команда запущена не от того пользователя. Для обычной Ubuntu/Debian-установки попробуйте запуск через sudo -u www-data. Если Nextcloud установлен нестандартно, проверьте владельца файла config/config.php.
ls -la /var/www/nextcloud/config/config.php
Файлы появились, но часть папок всё равно пустая
Часто причина в правах доступа, битых символических ссылках, внешнем хранилище или том, что данные положили не в тот каталог пользователя. Проверьте реальный путь, владельца файлов и логи Nextcloud.
sudo -u www-data php occ log:file
Что лучше не делать
- не редактируйте базу данных Nextcloud руками ради появления файлов;
- не запускайте массовый
chown -Rбез понимания, какой каталог вы меняете; - не кладите файлы напрямую в служебные каталоги приложения;
- не запускайте полное сканирование в час пик на большом хранилище;
- не удаляйте файловый кэш вручную, если достаточно
occ files:scan.
Короткая шпаргалка
Если нужно быстро восстановить видимость файлов, обычно хватает одной из трёх команд.
# Все пользователи sudo -u www-data php /var/www/nextcloud/occ files:scan --all # Один пользователь sudo -u www-data php /var/www/nextcloud/occ files:scan username # Одна папка пользователя sudo -u www-data php /var/www/nextcloud/occ files:scan --path="username/files/Documents"
FAQ
Можно ли запускать files:scan на работающем Nextcloud?
Да, обычно можно. Но если хранилище большое, лучше запускать сканирование в спокойное время. Команда может заметно нагрузить диск и базу данных.
files:scan удалит файлы?
Нет. Команда сканирует файловую систему и обновляет файловый кэш Nextcloud. Она не предназначена для удаления пользовательских файлов.
Почему Nextcloud сам не увидел файлы на диске?
Потому что файлы добавили в обход Nextcloud. Когда загрузка идёт через веб-интерфейс или клиент синхронизации, приложение само обновляет базу. Когда файлы копируют напрямую на сервере, нужно отдельное сканирование.
Что выбрать: —all, username или —path?
Если затронут весь сервер после миграции — --all. Если проблема у одного пользователя — укажите его логин. Если вы скопировали одну папку — используйте --path, это быстрее.



