一台のDCで運用しているのならデータのバックアップは必要かと

ここに詳しいお話が載っている
https://wiki.samba.org/index.php/Back_up_and_Restoring_a_Samba_AD_DC

っで簡単にはソースに付属しているバックアップスクリプトを使う
*ここで言うバックアップとは、sambaのユーザ情報、ディレクトリ情報を対象としています。ファイル共有フォルダのバックアップではないです

samba_backup

[root@c ~]# cd /opt/src/samba-4.6.2/source4/scripting/bin/samba_backup  /usr/sbin/samba_backup
[root@c ~]# vi /usr/sbin/samba_backup

変更箇所は

  • sambaの展開場所(FROMWHERE)
    ./configureの際に「--prefix=/opt/samba」と指定したのなら「/opt/samba」を指定します
  • バックアップ先
    どこでもいいみたい。システムディスク(/dev/sda)とは違う場所がいいかも

ここでは「--prefix=/opt/samba」としているので、「FROMWHERE=/opt/samba」として、
バックアップ場所は「/opt/backups」としています

[root@c ~]# diff -u  /opt/src/samba-4.6.2/source4/scripting/bin/samba_backup  /usr/sbin/samba_backup
--- /opt/src/samba-4.6.2/source4/scripting/bin/samba_backup     2017-01-11 16:55:15.000000000 +0900
+++ /usr/sbin/samba_backup      2017-05-01 17:51:53.272521467 +0900
@@ -25,11 +25,12 @@
 #    - Suppress useless tar "socket ignored" message.
 #    - Fix retention period bug when deleting old backups ($DAYS variable
 #      could be set, but was ignored).
+PATH=/opt/samba/bin:/opt/samba/sbin:$PATH
 
 
 
-FROMWHERE=/usr/local/samba
-WHERE=/usr/local/backups
+FROMWHERE=/opt/samba
+WHERE=/opt/backups
 DAYS=90                                # Set default retention period.
 if [ -n "$1" ] && [ "$1" = "-h" -o "$1" = "--usage" ]; then
        echo "samba_backup [provisiondir] [destinationdir] [retpd]"
[root@c ~]#

変更したスクリプトファイルを実行すると、日付が入ったバックアップファイルが目的の場所に置かれます。

[root@c ~]# /usr/sbin/samba_backup
 
[root@c ~]# ls -lh /opt/backups/
合計 6.5M
-rw-r--r-- 1 root root  456  5月  1 17:52 etc.2017-05-01.tar.bz2
-rw-r--r-- 1 root root 6.5M  5月  1 17:52 samba4_private.2017-05-01.tar.bz2
-rw-r--r-- 1 root root  472  5月  1 17:52 sysvol.2017-05-01.tar.bz2
[root@c ~]#

これをcronに登録します

[root@c ~]# crontab -e
MAILTO=""
 
0 2 * * *       /usr/sbin/samba_backup
[root@c ~]#

これで毎日午前2時にsamba設定データがバックアップされます

リストア

バックアップは取っても戻せなかったら意味がない。
説明サイト https://wiki.samba.org/index.php/Back_up_and_Restoring_a_Samba_AD_DC には戻し方も記載されている

  • リストアの際、sambaのプログラムはバックアップと同じバージョンで展開済みであること
  • IPと名前はバックアップ時と同じとする
    MACアドレスは代わってもいいみたい
  • OS環境も前のままとする
    CentOS6でバックアップを作って、CentOS7でリストアは無理みたい

同じバージョンのsambaを構築後、下記フォルダを削除します。

[root@c110 ~]# rm -rf /opt/samba/etc
[root@c110 ~]# rm -rf /opt/samba/private
[root@c110 ~]# rm -rf /opt/samba/var/locks/sysvol

次に、上記でバックアップしたファイルを戻します

[root@c110 ~]# yum install bzip2
 
[root@c110 ~]# tar -jxf ./etc.2017-08-07.tar.bz2            -C /opt/samba/
[root@c110 ~]# tar -jxf ./samba4_private.2017-08-07.tar.bz2 -C /opt/samba/
[root@c110 ~]# tar -jxf ./sysvol.2017-08-07.tar.bz2         -C /opt/samba/

その後に微調整

[root@c110 ~]# find /opt/samba/private/ -type f -name '*.ldb.bak' -print0 | while read -d $'\0' f ; do mv "$f" "${f%.bak}" ; done
 
[root@c110 ~]# /opt/samba/bin/samba-tool ntacl sysvolreset

そして起動させます

  1
[root@c110 ~]# systemctl start samba

「journalctl -f -u samba」にて監視して、
/opt/samba/sbin/samba_dnsupdate: ERROR(runtime): uncaught exception - (9711, 'WERR_DNS_ERROR_RECORD_ALREADY_EXISTS')」とか「Failed DNS update - with error code 110」とエラーがでたなら、それはsamba-ADの/etc/resolv.confの設定ミスかも。

[root@c110 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search sybyl.local
nameserver 127.0.0.1           <--- 自分自身を示させる
nameserver 192.168.0.3
[root@c110 ~]#

とかにすれば宜しいかと


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2017-08-07 (月) 21:02:12 (131d)