пятница, 18 мая 2018 г.

Холодная резервная копия для параноика. Rsync + SMB

1. Делаем пароль для пользователя под которым будет подключаемся шифрованным и полученный пароль вводим ниже:
smbutil crypt password_user

2. Делаем файл /root/.nsmbrc:

[default]
workgroup=TEST

#Указываем имя и ip сервер с windows share
[SERVER]
addr=10.0.0.1
#Указываем пользователя. ВАЖНО все БОЛЬШИМИ буквами.
[SERVER:USER]
#Перед паролем указываем $$1 и добавляем полученный ранее.
password=$$14sdf$%Fdg6$SDGs

3. Создаем сам скрипт /opt/backup.sh, который будет подключать windows share и запускать Rsync для синхронизации данных, если были изменения:

mount_smbfs -N //user@SERVER/backup/ /mnt/SERVER/backup/
rsync -arzP --delete --ignore-existing /mnt/SERVER/backup/dayly/
/mnt/HDD1/Backup/Dayly

4. Добавляем скрипт в cron  и все.

И не все. Как оказалось есть маленькие проблемы  при копировании файлов "file was vanished" и отображением имени файла в виде ?????????????????? или обрыва имени файла на знаке ?

И так. Что же делать.
1. Все таки проверим locale. В моем случае все должно выглядит вот так
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"

LC_ALL=ru_RU.UTF-8

Если же нет, командой  setenv LC_ALL ru_RU.UTF-8 применяем нужные нам параметры.

Далее прописываем следующие параметры в файл nano /etc/login.conf

mount -uw /
nano /etc/login.conf

в конец секции [defoult] добавляем
:charset=UTF-8:\
:lang=ru_RU.UTF-8:

cap_mkdb /etc/login.conf
cp /etc/login.conf.db /conf/base/etc
cp /etc/login.conf /conf/base/etc

И теперь самое главное, перемонтируем шару с нужной нам кодировкой
mount_smbfs -E utf-8:cp866 -N //user@SERVER/backup/ /mnt/SERVER/backup/  например вот так.

Если вы спросите а как же параметр --iconv=utf-8,windows-1251 в rsync? - Мне он лично не помог.



Полезные материалы:
Как подключить Share в FreeBSD
https://www.lissyara.su/articles/freebsd/file_system/mount_smbfs/
https://www.cyberciti.biz/faq/mounting-a-nas-with-freebsd-mount_smbfs/
Mount smbfs монтирование из скрипта
https://digitaldark.wordpress.com/tag/syserr-authentication-error/
https://www.freebsd.org/cgi/man.cgi?query=mount_smbfs&apropos=0&sektion=0&manpath=FreeBSD+8.2-RELEASE&arch=default&format=html

Как использовать Rsync
http://optics.ph.unimelb.edu.au/help/rsync/rsync_pc1.html
http://everythinglinux.org/rsync/
https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps

Комментариев нет: