testparm в самбе может выдать такое сообщение:
rlimit_max: rlimit_max (8192) below minimum Windows limit (16384)
Похоже, эту проблему можно решить, увеличив максимальное количество открытых файлов с помощью этой команды Linux. ulimit -n 16384
..
Это безопасное изменение для стандартного окна Samba? Где следует сохранить эту настройку, чтобы она была доступна сервису samba при загрузке?
Во-первых, это просто предупреждение. В MS Windows количество обработчиков файлов на клиенте и сервере должно быть одинаковым, иначе вы увидите сообщение «слишком много файлов открыто», когда e. грамм. копирование файлов по сети. Более свежие версии Samba позаботятся об этом самостоятельно.
Однако, если вы хотите удалить это предупреждение, вы можете сделать это, изменив ограничения локального файла. Всегда полезно различать локальные (пользовательские или сеансовые) ограничения и глобальные (общесистемные) ограничения. Проверьте свои глобальные ограничения с помощью
cat /proc/sys/fs/file-max
Скорее всего, ваши глобальные пределы намного превышают ваши локальные. Я думаю, что типичный предел для GNU / Linux находится в диапазоне 100 КБ, я очень давно не смотрел. Вы можете временно изменить это значение, выполнив
sysctl -w fs.file-max=n
или навсегда путем редактирования /etc/sysctl.conf
и бег sysctl -p
.
Чтобы проверить свои локальные ограничения, переключитесь на соответствующего пользователя, например. грамм. самба и беги
ulimit -Hn
ulimit -Sn
Это покажет вам жесткие и мягкие ограничения для локальной сессии. Жесткое ограничение применяется системой, а мягкое - локальным сеансом. При необходимости вы можете увеличить локальный мягкий предел до глобального жесткого.
Вы можете временно изменить пределы, запустив
ulimit -Hn n
ulimit -Sn m
или вы можете установить ограничения для пользователей с помощью /etc/security/limits.conf
и вы даже можете указать, для каких пользователей действуют ограничения, например. грамм.
samba soft nofile 16384
samba hard nofile 32768
Как всегда, справочные страницы обоих файлов и команд предлагают гораздо больше информации. Надеюсь, это поможет.
Лимит взят из /etc/security/limits.conf.
вы показываете свой фактический лимит с помощью ulimit -n
вы можете изменить его, отредактировав (или добавив) строку
* - nofile 16385
и перезагрузите свой параметр env (или выйдите из оболочки и снова войдите в оболочку).
Опечатка в /etc/samba/smb.conf
файл может генерировать такую ошибку. Я следил за этим ссылка на сайт и перепроверил мою только для того, чтобы выяснить, что моя проблема была опечаткой: «да» вместо «да».
Это просто, но я считаю, что многие люди тратят время на этот вопрос (как и я, ха-ха).
Нам нужно настроить предел параметра НЕТ ФАЙЛА в "/etc/security/limits.conf" или в другом альтернативном файле, например, "/etc/security/limits.d/limit-file.conf" таким образом:
* - nofile 16384
Проблема в том, что эта конфигурация не применяется к текущему сеансу, нам нужно выйти и войти в систему, чтобы применить изменения, поэтому наши тесты с TESPARM никогда не срабатывают.
Если вы не хотите перезапускать сеанс, примените эту команду и решите эту проблему:
ulimit -n 16384
Надеюсь это поможет!