Столкнулся с проблемой. Клиент Owncloud автоматически не синхронизирует файлы из внешнего хранилища, подключенного по SMB из Windows сервера. Если загружаешь файл, то он нормально попадает в папку, все его видят. А если кто-то загружает файл на Windows сервере, то OwnCloud не видит это изменение, соответственно, не синхронизируется клиент.
OwnCloud — это свободное и открытое веб-приложение для синхронизации данных и совместной работы с файлами в стиле Dropbox. Замечательный инструмент для создания личного, семейного или корпоративного файлового хранилища.
Если подумать, то проблема понятная. Операционная система Linux, на которой развернут OwnCloud, понятия не имеет, что в какой-то SMB директории изменился, удалился или добавился файл. Здесь приходит на помощь запуск полного сканирования файлов в cron.
Запуск сканирования вручную
Сканирование для всех пользователей:
sudo -u www-data php /var/www/owncloud/occ files:scan --all
Сканирование для определённого пользователя:
sudo -u www-data php /var/www/owncloud/occ files:scan username
Запуск сканирования в crontab
Редактируем файл настроек cron:
sudo -u www-data crontab -e
Добавляем расписание сканирования, допустим, раз в 15 минут для пользователя:
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ files:scan username
Или раз в час для групп:
0 * * * * /usr/bin/php -f /var/www/owncloud/occ files:scan --group=foo --group=bar
Или в 7 и в 19 часов для всех:
0 7,19 * * * /usr/bin/php -f /var/www/owncloud/occ files:scan --all
Timeout
Файлов может быть много. Поскольку скрипт выполняется через PHP, то можно напороться на таймаут:
PHP Fatal error: Maximum execution time of 3600 seconds exceeded in /var/www/owncloud/3rdparty/Patchwork/PHP/Shim/Normalizer.php on line 204
В Интернете предлагают решение. Редактируем Normalizer.php, переходим к строке 204, поднимаемся к началу функции. Перед началом цикла while, вставляем код:
ini_set('max_execution_time', 43200);
Таймаут увеличен до 12 часов.
Ссылки
https://forum.ubuntu.ru/index.php?topic=250464.0
https://doc.owncloud.com/server/next/admin_manual/configuration/server/occ_command.html