linux部署samba局域网文件共享

上回搞明白了如何挂载 Windows 共享,最近公司里有人想提出给文件做备份,就研究了一下做一个文件服务器,顺便把网络服务器的文件备份功能也搞了。

情景:原有一台 Windows sever 做文件服务器,现在新部署一台 Linux 的把他换掉,同时把 NAS 也连接到 Linux 上。

  1. 挂载所有需要的硬盘
  2. 配置 samba
  3. 配置自动备份的计划
  4. 启动 url 监控的脚本
  5. 搭建 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 文件。

posted @ 2023-04-18 10:48  NagaResst  阅读(292)  评论(0)    收藏  举报