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