• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Лотус сервер не понимает русские имена файлов в linux

Gandliar

Lotus Team
16.02.2004
558
26
BIT
68
Здравствуйте!

Если в папке лежит файл на русском языке, то лотус сервер не понимает и отображает квадраты.
соответственно удалить такой файл командой kill нельзя

Подскажите как решить такую проблему?

В tmp каталог ложится файл с русским именем. в линуксе отображается правильно.

серверный агент который считывает имена файла из каталога и пишет в консоль

1690388432099.png
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 948
609
BIT
253
Здравствуйте!

Если в папке лежит файл на русском языке, то лотус сервер не понимает и отображает квадраты.
соответственно удалить такой файл командой kill нельзя

Подскажите как решить такую проблему?

В tmp каталог ложится файл с русским именем. в линуксе отображается правильно.

серверный агент который считывает имена файла из каталога и пишет в консоль

Посмотреть вложение 70568
locale на линукс какая, как запускается домина?
консоль домины, без докруток (в скрипте Нэщеда) наследует из ОС или берёт англицкую
 

D3L1F3R

Red Team
20.02.2022
307
93
BIT
383
Добавьте в locale.gen русский язык, перезагрузитесь и остановите демонов, переименуйте файлы на нормальные названия, и запустите снова
 

Gandliar

Lotus Team
16.02.2004
558
26
BIT
68
локаль на линуксе ru_RU.UTF-8

русский язык ru_RU.cp1251 тоже есть

сервер записывает правильно, а считать обратно не может.
 

Gandliar

Lotus Team
16.02.2004
558
26
BIT
68
Создавал базу данных с русским названием.
Отображается в админке нормально.
командой на сервере sh dir выдается нормально с русским языком

не работает в серверном агенте команды dir и kill

kill не находит файл с русскими буквами в наименовании, причем также созданный этим же агентом.
dir выдает имена файлов с квадратиками вместо букв
 

savl

Lotus Team
28.10.2011
2 607
313
BIT
260
Создавал базу данных с русским названием.
Отображается в админке нормально.
командой на сервере sh dir выдается нормально с русским языком

не работает в серверном агенте команды dir и kill

kill не находит файл с русскими буквами в наименовании, причем также созданный этим же агентом.
dir выдает имена файлов с квадратиками вместо букв
откажитесь от русских букв в системном имени файла, вот и всё.
На кой делать база_данных.nsf если есть Title ?
 
  • Нравится
Реакции: rinsk и D3L1F3R

Gandliar

Lotus Team
16.02.2004
558
26
BIT
68
Всем спасибо!

Оказалась, что это известная ошибка, при которой kill не работает с рускоязычными наименованиями файлов.

Придумал обходное решение

Код:
%REM
    Sub killFile
    Description: Comments for Sub
%END REM
Sub killFile(filePath As String)
    Dim session As New NotesSession
    Dim stream As NotesStream
    Set stream = session.Createstream()
    Call stream.Open(filePath)
    Call stream.Truncate()
    Call stream.Close()
End Sub
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 948
609
BIT
253
Создавал базу данных с русским названием.
Отображается в админке нормально.
командой на сервере sh dir выдается нормально с русским языком

не работает в серверном агенте команды dir и kill

kill не находит файл с русскими буквами в наименовании, причем также созданный этим же агентом.
dir выдает имена файлов с квадратиками вместо букв
эти команды, скорее-всего, скомпилированные на винде (а иначе и не получится, в дизигнере) не учитывают ЮТФ-8
кмк была какая-то переменная ЛС, могущая поменять это (может я и ошибаюсь)
и еще момент - были жалобы в "старых" линухах и версиях домины на Dir/Kill
 
Последнее редактирование:

abbdomino

Green Team
04.02.2022
102
10
BIT
30
Это известная проблема. Заведен даже SPR RMON7PVEVV "LotusScript kill statement can not handle unicode in file names".
есть несколько вариантов, как можно обойти проблему.
1. хранить все временные файлы в определенной папке, и другой внешний скрипт их будет удалять
Delete_temp.bat

del /q "C:\Temp_folder\*"
2. второй вариант, при созранении файла, уже сохранять его с английким именем,тогда с KILL не будет проблем
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 948
609
BIT
253
Это известная проблема. Заведен даже SPR RMON7PVEVV "LotusScript kill statement can not handle unicode in file names".
есть несколько вариантов, как можно обойти проблему.
1. хранить все временные файлы в определенной папке, и другой внешний скрипт их будет удалять
Delete_temp.bat

del /q "C:\Temp_folder\*"
2. второй вариант, при созранении файла, уже сохранять его с английким именем,тогда с KILL не будет проблем
ну в линухах допустим не bat ;) и не del и не C:\... :)
а так - суть верна (вызова внешнего скрипта)
в линухах он (скрипт) д.б. а пределах notesdata емнип
можно и через ЛС2Ж
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 948
609
BIT
253
откажитесь от русских букв в системном имени файла, вот и всё.
На кой делать база_данных.nsf если есть Title ?
наиболее логичный путь - ASCII набор символов наиболее безопасен, можно (если так цепляться за другие символы при передаче) типа urlencode (в base64)
 

garrick

Lotus Team
26.10.2009
1 352
151
BIT
205
Скорее всего консоль у вас в UTF-8, а агент принтует в Win-1251. Настройте дизайнер на использование UTF-8, перекомпилите агента и больше его не открывайте другим дизайнером.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!