Ubuntu 挂载 SMB 服务

前言

cifs-utils 常用于 Linux 系统中的工具集,主要用于管理和操作 CIFS(Common Internet File System) 协议的网络共享。CIFS 是一种基于 SMB(Server Message Block)协议的文件共享协议,通常用于 Windows 系统之间的文件共享,但也可以被 Unix/Linux 系统使用,在 Linux 系统上使用 CIFS 协议之前,首先需要:

安装 cifs-utils

1
2
3
sudo apt install cifs-utils
# 如果你用的是 Red Hat/CentOS:
sudo yum install cifs-utils

连接远程文件服务器

创建本地挂载目录

1
sudo mkdir /mnt/exchange

挂载共享文件夹

使用 mount 命令挂载 SMB 共享目录

1
2
3
sudo mount -t cifs //指定SambaIP/文件夹名   /mnt/本地挂载点   -o username=${username},password=${password}
# 若文件路径包含空格需要使用双引号将参数包裹,如下示例命令可作参考:
sudo mount -t cifs "//10.0.0.2/Exchange Box" /mnt/exchange -o username=testuser,password=testPassword

若无报错输出则挂载成功,可以运行 df -h 查看当前磁盘状态:

卸载共享文件夹

使用 umount 命令卸载 CIFS 网络共享

1
2
3
sudo umount /mnt/本地挂载点
# 续上例,例如:
sudo umount /mnt/exchange

PS: 复制文件显示进度的小技巧

Linux 复制文件的 cp 命令不会显示进度和速度,当我们复制大文件的时候,看不到复制的进度,不太方便

这里我们使用的是 rsync 命令替代,rsync 是一个非常强大的命令行工具,广泛用于文件和目录的同步和备份,尤其适用于 Linux 和类 Unix 系统。

基本使用方法

1
2
3
4
5
6
7
# 命令基本格式:
rsync [OPTION]... SRC [SRC]... DEST
# 在实际使用中,我们通常使用的命令是:
rsync -av --progress ./src /mnt/dist
# -a 是 --archive 的缩写,使复制文件时尽可能保持源文件属性,确保文件的结构和元数据(如权限、时间戳等)保持一致
# -v 是 --verbose 的缩写,它启用详细输出模式,使 rsync 在执行时显示更多的操作信息
# --progress 显示每个文件传输的进度信息,包括文件传输的速度、已传输的字节数和预计完成的时间

输出示例:

1
2
3
4
5
6
7
8
9
sending incremental file list
./
file1.txt
128,000 100% 354.00kB/s 0:00:00 (xfer#1, to-check=0/2)
file2.txt
256,000 100% 512.00kB/s 0:00:00 (xfer#2, to-check=0/2)

sent 384,000 bytes received 12 bytes 768,024.00 bytes/sec
total size is 384,000 speedup is 1.00

参考


Ubuntu 挂载 SMB 服务
https://blog.tddt.cc/posts/12.Ubuntu-mount-smb.html
作者
TechPANG
发布于
2024年11月15日
许可协议