LINUX.ORG.RU
ФорумAdmin

BackupPC проблемы с кирилицей.


0

1

BackupPC 3.2.1 На Win машинах, при создании списка бэкапа, если присутствует кирилица в именах каталогов, не бэкапит их и пишет в лог следующее: 10.1.5.146: Wide character in subroutine entry at /usr/share/perl/5.14/Compress/Zlib.pm line 425.

$Conf{SmbShareName} = [
  'D$'
];
$Conf{SmbSharePasswd} = 'jnrhjq';
$Conf{SmbShareUserName} = 'backuppc';
$Conf{BackupFilesOnly} = {
  'D$' => [
    '/CHESTER/volumouse_beta',
    '/TorrentSMASHA/tmp',
    "/\x{43f}\x{440}\x{43e}\x{43b}\x{43e}\x{433}"  // Каталог с кириллицей в названии ("/пролог") 
  ]
};
$Conf{ClientCharsetLegacy} = 'utf8';

При этом, если напрямую добавить в конфиг строку «/пролог», то он его забэкапит.

Как побороть?


Ответ на: комментарий от PATRI0T

«\x{номер}» означает некоторый юникодный символ, и если его номер больше 255, Perl не знает, в какую кодировку его кодировать при выводе куда-либо. При этом он бросает warning и кодирует его в UTF-8 за неимением лучшего варианта.

Если записать туда сразу символы в какой-то кодировке (например, строку «/пролог»), Perl не будет задумываться над вопросом, во что кодировать строку, потому что в ней будут не символы с номером >255, а байты.

За преобразования между символами и байтами отвечает модуль Encode. Раз уж конфиг выполняется как Perl'овая программа, можно попробовать сделать так:

use Encode::Locale;
use Encode 'encode';
...;
$Conf{BackupFilesOnly} = {
  'D$' => [
    '/CHESTER/volumouse_beta',
    '/TorrentSMASHA/tmp',
    encode(locale => "/\x{43f}\x{440}\x{43e}\x{43b}\x{43e}\x{433}"),
  ]
};

Encode::Locale попытается определить, в какую кодировку кодировать символы, а BackupPC достанется набор байт, который ему и нужен.

AITap ★★★★★
()
Последнее исправление: AITap (всего исправлений: 1)
Ответ на: комментарий от AITap

Спасибо, очень благодарен за подробный ответ. Да, оно работает, но веб-интерфейс не может понять такой конфиг...

Систему настраиваю в организацию, где народ максимум сможет разобраться в вебке, поэтому вариант с ручным редактированием конфига не подохдит. Хочу, чтобы можно было легко добавлять каталоги, которые нужно бэкапить (BackupFilesOnly), в том числе и с кириллическими именами. Есть ли вариант так сделать?

PATRI0T
() автор топика

http://backuppc.sourceforge.net/faq/BackupPC.html

А документацию кто будет читать ? http://backuppc.sourceforge.net/faq/BackupPC.html

WinXX
One setup for WinXX clients is to set $Conf{XferMethod} to "smb". Actually, rsyncd is the better method for WinXX if you are prepared to run rsync/cygwin on your WinXX client.

If you want to use rsyncd for WinXX clients you can find a pre-packaged zip file on http://backuppc.sourceforge.net. The package is called cygwin-rsync. It contains rsync.exe, template setup files and the minimal set of cygwin libraries for everything to run. The README file contains instructions for running rsync as a service, so it starts automatically everytime you boot your machine. If you use rsync to backup WinXX machines, be sure to set $Conf{ClientCharset} correctly (eg: 'cp1252') so that the WinXX file name encoding is correctly converted to utf8.

Otherwise, to use SMB, you can either create shares for the data you want to backup or your can use the existing C$ share. To create a new share, open "My Computer", right click on the drive (eg: C), and select "Sharing..." (or select "Properties" and select the "Sharing" tab). In this dialog box you can enable sharing, select the share name and permissions.

All Windows NT based OS (NT, 2000, XP Pro), are configured by default to share the entire C drive as C$. This is a special share used for various administration functions, one of which is to grant access to backup operators. All you need to do is create a new domain user, specifically for backup. Then add the new backup user to the built in "Backup Operators" group. You now have backup capability for any directory on any computer in the domain in one easy step. This avoids using administrator accounts and only grants permission to do exactly what you want for the given user, i.e.: backup. Also, for additional security, you may wish to deny the ability for this user to logon to computers in the default domain policy.

kostik87 ★★★★★
()
Ответ на: http://backuppc.sourceforge.net/faq/BackupPC.html от kostik87

Спасибо большое.теперь все ок. Это читал, но ошибся с опцией. Использовал ClientCharsetLegacy вместо ClientCharset Спасибо еще раз.

PATRI0T
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.