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

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

っで簡単にはソースに付属しているバックアップスクリプトを使う
&color(red){*};&size(10){ここで言うバックアップとは、sambaのユーザ情報、ディレクトリ情報を対象としています。ファイル共有フォルダのバックアップではないです};
***samba_backup [#f709867a]
#code(nonumber){{
[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」としています
#code(diff,nonumber){{
[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 ~]#
}}
変更したスクリプトファイルを実行すると、日付が入ったバックアップファイルが目的の場所に置かれます。
#code(nonumber){{
[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に登録します
#code(nonumber){{
[root@c ~]# crontab -e
MAILTO=""

0 2 * * *       /usr/sbin/samba_backup
[root@c ~]#
}}
これで毎日午前2時にsamba設定データがバックアップされます


***リストア [#d71c6907]
バックアップは取っても戻せなかったら意味がない。
説明サイト [[https://wiki.samba.org/index.php/Back_up_and_Restoring_a_Samba_AD_DC]] には戻し方も記載されている
-リストアの際、sambaのプログラムはバックアップと同じバージョンで展開済みであること
-IPと名前はバックアップ時と同じとする
&size(10){MACアドレスは代わってもいいみたい};
-OS環境も前のままとする
&size(10){CentOS6でバックアップを作って、CentOS7でリストアは無理みたい};

同じバージョンのsambaを構築後、下記フォルダを削除します。
#code(nonumber){{
[root@c110 ~]# rm -rf /opt/samba/etc
[root@c110 ~]# rm -rf /opt/samba/private
[root@c110 ~]# rm -rf /opt/samba/var/locks/sysvol
}}
次に、上記でバックアップしたファイルを戻します

#code(nonumber){{
[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/
}}

その後に微調整
#code(nonumber){{
[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
}}

そして起動させます
#code(nonnumber){{
[root@c110 ~]# systemctl start samba
}}
「journalctl -f -u samba」にて監視して、
「&color(red){ /opt/samba/sbin/samba_dnsupdate: ERROR(runtime): uncaught exception - (9711, 'WERR_DNS_ERROR_RECORD_ALREADY_EXISTS')};」とか「&color(red){Failed DNS update - with error code 110};」とエラーがでたなら、それはsamba-ADの/etc/resolv.confの設定ミスかも。
#code(nonumber){{
[root@c110 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search sybyl.local
nameserver 127.0.0.1           <--- 自分自身を示させる
nameserver 192.168.0.3
[root@c110 ~]#
}}
とかにすれば宜しいかと
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS