Bacula в консоли (bconsole) вместо русских букв показывает закорючки в FreeBSD 8.2

22.06.2012, рубрики: FreeBSD | Теги: , | Комментариев нет »

Долго выбирал систему резервного копирования. Остановил свой выбор на bacula.
Сразу все гладко настроить систему не получилось, появилась проблема, пользователи создают папки и файлы на русском языке, а эти папки и файлы попадают в задание резервного копирования bacula.

Так как в FreeBSD по-умолчанию нет поддержки UTF-8, в bconsole вместо русских имен, видно только закорючки.

Восстанавливать удаленные файлы нужно? Правильно! Нужно! Файлы, конечно, же можно восстановить, указать корневую папку, и то, если она на латинице написана. Но зачем усложнять жизнь. У меня есть папка на латинице в ней куча подпапок, и среди них, кто-то создал файл на русском языке. Именно этот файл был удален. Чтобы его восстановить, пришлось восстанавливать никому ненужные Гигабайты лишней информации.

Внедрим поддержку UTF-8 в FreeBSD.

Добавляем в конфиг ядра строки:

1
2
options TEKEN_UTF8
options TEKEN_XTERM

Пересобираем ядро и перезагружаемся

правим /etc/login.conf:

было:

1
2
3
4
russian|Russian Users Accounts:\
        :charset=KOI8-R:\
        :lang=ru_RU.KOI8-R:\
        :tc=default:

стало:

1
2
3
4
russian|Russian Users Accounts:\
        :charset=UTF-8:\
        :lang=ru_RU.UTF-8:\
        :tc=default:

Создаём хэш для login.conf:

1
cap_mkdb /etc/login.conf

правим /etc/csh.cshrc — устанавливаем переменные окружения:

1
2
3
4
setenv LANG ru_RU.UTF-8
setenv LC_CTYPE ru_RU.UTF-8
setenv LC_COLLATE POSIX
setenv LC_ALL ru_RU.UTF-8

Для bash-подобных шеллов правим /etc/profile:

1
2
3
4
LANG="ru_RU.UTF-8"; export LANG
LC_CTYPE="ru_RU.UTF-8"; export LC_CTYPE
LC_COLLATE="POSIX"; export LC_COLLATE
LC_ALL="ru_RU.UTF-8"; export LC_ALL

Для root правим /root/.cshrc:

1
2
3
4
setenv LANG C
setenv LC_CTYPE C
setenv LC_COLLATE POSIX
setenv LC_ALL C

Меняем драйвер консоли 'cons25' на 'xterm' в /etc/ttys

Поместим ваш_юзер в Class russian

1
pw usermod ваш_юзер -L russian

Можно проверять в bconsole

1
2
3
4
5
6
7
# bconsole
cwd is: /
$ cd D:/shares/ImportantDOC
cwd is: D:/shares/ImportantDOC
$ ls
Документация/
$

Из листинга видно, что bacula корректно отображает названия русских папок, а соответственно и файлов.



Оставить комментарий