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