linux部署samba局域网文件共享
上回搞明白了如何挂载 Windows 共享,最近公司里有人想提出给文件做备份,就研究了一下做一个文件服务器,顺便把网络服务器的文件备份功能也搞了。
情景:原有一台 Windows sever 做文件服务器,现在新部署一台 Linux 的把他换掉,同时把 NAS 也连接到 Linux 上。
- 挂载所有需要的硬盘
- 配置 samba
- 配置自动备份的计划
- 启动 url 监控的脚本
- 搭建 HTTP 服务器
※ 权限:以下所有文件夹若出现访问权限不足的情况,使用命令 chmod 777 filename 解决,但是一般不会出现。所以不要为了保险就先敲一遍,要改权限也是改成 775。
1. 服务器基础环境配置
1.1 挂载 NAS 需要额外的组件支持,先安装 yum 源,然后安装 ntfs-3g,可以让 linux 支持 NTFS 文件系统、
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum update
yum install ntfs-3g -y
1.2 然后开始组建 raid0 若不需要则跳过 用 fdisk 格式化分区 然后用 mdadm 组件 raid0
在 Linux 下使用 RAID(二):使用 mdadm 工具创建软件 RAID 0 (条带化)
之所以选择 raid0 是因为我们的数据有多重备份,若损失一天的数据不足为虑,则不需要使用 raid5。
1.3 使文件夹开机自动挂载
vim /etc/fstab
/dev/md0 /share ext4 defaults 0 0
/dev/sde2 /nas ntfs-3g defaults 0 0
//172.31.2.13/m/SQLBackups /root/13 cifs ro,username=username,password=password 0 0
//172.31.2.15/m/ /root/15/ cifs ro,username=username,password=password 0 0
//172.31.19.202/share/ /root/202 cifs ro,username=username,password=password 0 0 //这条以后会删掉
注意 fstab 里的密码即使有特殊字符也不需要加引号,但是手动挂载的时候密码需要用单引号包裹。
编辑完了自动挂载一下。
mount -av
1.3.1 手动挂载
mount //172.31.2.15/m/ /root/15/ -t cifs -o ro,username=username,password='password'
mount //172.31.2.13/m/SQLBackups /root/13 -t cifs -o ro,username=username,password='password'
mount /dev/sde2 /nas -t ntfs-3g
mount /dev/md0 /share -t ext4
2. Samba部署配置
2.1 配置 samba 文件共享
samba 需要单独准备登陆用的账号密码。
groupadd samba //创建samba组,方便管理权限,当然也可以不需要或者是使用别的组。
useradd -g samba -s /sbin/nologin Administrator //创建一个无法用shell登录的用户,此用户不需要密码。
Samba 的登录用户名和密码是通过一个单独的数据库管理的。Samba 会有自己单独的密码策略,这样做安全性会有所提高。
smbpasswd -a Administrator //添加一个新的samba用户
New SMB password: //输入要设置的密码
Retype new SMB password: //再次输入,注意Samba是有一定强度的密码策略的,可能要多试几次。
然后编辑 samba 的配置文件
vim /etc/samba/smb.conf
[share]
comment = Shared Folder
path = /share
valid users = Administrator
browseable = yes
public = no
writable = yes
printable = no
create mask = 0777
available = yes
[log for rsync]
comment = log of rsync
path = /var/log/rsync
valid users = Administrator
read only = yes
browseable = yes
public = no
writable = no
printable = no
[NAS]
comment = NAS
path = /nas
valid users = Administrator
browseable = yes
public = no
writable = yes
printable = no
create mask = 0777
available = yes
[webservicemonitor]
comment = webservicemonitor
path = /webservicemonitor
valid users = Administrator
browseable = yes
public = no
writable = yes
printable = no
available = yes
[html]
comment = Apache Server html
path = /var/www/html/
valid users = Administrator
browseable = yes
public = no
writable = yes
printable = no
create mask = 0777
available = yes
测试 samba 配置
testparm
2.2 重启 samba
systemctl restart smb
smb 服务的名称有不同的情况,有的时候为 smb,有的时候为 smbd。目前发现的情况是自己安装的时候是 smdb,若是系统集成的为 smb。若不确定 systemctl status smb 然后按几下 tab 看看会补出来什么即可。
3. 使用 crontab 配置自动备份的计划
vim /etc/crontab
0 1 * * * rsync -rutP --delete /root/202/ /share >> /var/log/rsync/`date +\%F`sharefolder.log
0 3 * * * rsync -rtuP --delete /share/ '/nas/LocalShare Backup/' >> /var/log/rsync/`date +\%F`nassharefolder.log
0 11 * * * rsync -rtuP --delete /root/15/backup/ '/nas/Backup for 172.31.2.15/backup/' >> /var/log/rsync/`date +\%F`mspserver.log
0 4 * * * rsync -rtuP --delete /root/15/fileAttachments/ '/nas/Backup for 172.31.2.15/fileAttachments/' >> /var/log/rsync/`date +\%F`mspserver.log
0 6 * * * rsync -rtuP --delete /root/13/ '/nas/Backup for 172.31.2.13/' >> /var/log/rsync/`date +\%F`sqlserver.log
rsync 用法 https://www.cnblogs.com/jiangzhaowei/p/8191003.html
crond 用法 https://www.cnblogs.com/ftl1012/p/crontab.html
4. html编码问题
现象:网页文本显示乱码
Linux 对中文的支持使用的是 UTF-8 编码,windows 使用的是 GBK/GB2312。
如果只是共享的文件则没有影响,因为输出文件与使用文件的平台都为 Windows。
若输出文件给 Linux 使用在应用服务上则有可能发生这种情况,需要在输出文件的时候手动选择使用 UTF-8 编码。例如 html 文件。

浙公网安备 33010602011771号