一台の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 ~]#
}}
とかにすれば宜しいかと