配置 Samba DFS.note
一、配置 Samba DFS:
·题目:

1、配置 Samba DFS 服务器:
apt install -y sambamkdir /resources
mkdir /dfsroot
chmod 777 /resources
chmod 777 /dfsroot
vim /etc/samba/smb.conf
# host msdfs=yes 表示这台Samba提供DFS
# msdfs root=yes 表示这个共享是DFS命名空间的根
# 假如本机是 srv02.wsc2026.sh
## 这里可以写 主机名,也可以写FQDN(但是必须要能够访问到,主机名还要写hosts,所以直接写fqdn):
ln -s 'msdfs:srv02.wsc2026.sh\resources' /dfsroot/resources
systemctl restart smbd
# 然后用smbpasswd -a 添加用户就能进行测试了:
smbpasswd -a user·测试:
apt install -y smbclient
echo Test > /resources/Test.txt
smbclient -L //localhost -U user
smbclient //srv02/resources -U 'user%Skill39##'
smbclient //srv02/dfs -U 'user%Skill39##'可以同时看到 dfs和 resources



2、将其他机器的samba共享加入本地DFS:
1)先在其他机器配置 samba共享:
apt install -y samba
mkdir /doc
chmod 777 /doc
vim /etc/samba/smb.conf
systemctl restart smbd
smbpasswd -a user注意,如果这里用的是本地用户,那么两边的用户都必须要有,用户名和密码都需要一样,否则会无法访问
2)回到 DFS 上链接这个 samba共享:
必须能够访问到这个 samba IP、域名 和 它的 TCP 445端口
ln -s 'msdfs:fw01.wsc2026.sh\doc' /dfsroot/doc
·测试:

3、让一个 DFS文件夹有多个 target:
1)以上面存在的resources举例,现在srv02它在DFS本地有一个,那么我们只需要在其他samba服务器上再创建一个共享并链接即可:
# fw01:
mkdir /resources
chmod 777 /resources
vim /etc/samba/smb.conf
# srv02 上 链接这个samba共享:
## 如果已经存在,rm -rf 删除即可:
ln -s 'msdfs:fw01.wsc2026.sh\resources,srv02.wsc2026.sh\resources' /dfsroot/resources
2)(可选)此时两个文件夹的数据不会自动同步,这里可以使用 rsync 进行数据同步:
# 两边同时安装 rsync:
apt install -y rsync
ssh-keygen
ssh-copy-id root@fw01.wsc2026.sh
rsync -aHAX --delete /resources/ root@fw01.wsc2026.sh:/resources/
# -a 保留文件属性、权限
# -H 保留硬链接(不加也行)
# -A 保留 ACL(不加也行)
# -X 保留扩展属性(不加也行)
# --delete 表示本地删除的文件,远端也删除
·然后写一个计划任务,每分钟运行一次就可以了
vim /etc/crontab
systemctl restart cron